NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Lekce 15 - Textové řetězce v Pythonu do třetice - Split a Join

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Michaela Zahradníková
DarkCoder:12. srpna 16:06

Pokud Ti jde o pochopení funkcí split() a join() bez omáčky, podívej na následující příklad.

text = "jablko-banán-hruška"
print(text)               # Výstup: jablko-banán-hruška

# split vrací list
tokeny = text.split("-")  # ['jablko', 'banán', 'hruška']

# Práce se seznamem
print(tokeny[0])          # přístup přes index → 'Výstup: jablko'
tokeny.append("meloun")   # přidání nového prvku
tokeny.remove("banán")    # odebrání podle hodnoty
tokeny.sort()             # seřazení

for token in tokeny:      # Výstup: hruška jablko meloun
    print(token, end=' ')
print()

text_2 = "-".join(tokeny)
print(text_2)             # Výstup: hruška-jablko-meloun
Odpovědět
12. srpna 16:06
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
DarkCoder
Člen
Avatar
DarkCoder:12. srpna 16:25

K výkladu:

Proč nesdělíte jasně že funkce split vrací seznam (list)? Čtenářům to pak bude mnohem srozumitelnější.

Stejně tak když tokenizujete znaky pomocí split, proč nezvolíte funkci bez parametrů která rozděluje podle všech bílých znaků oproti funkci s argumentem mezery.

A nakonec řízené toku programu podle vyhodnocení výjimky není vhodné. Mnohem lepší je otestovat přítomnost znaku a podle toho pokračovat dál.

# Morseova abeceda – znaky
abecedni_znaky = "abcdefghijklmnopqrstuvwxyz"
morseovy_znaky = [".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....",
                  "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.",
                  "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."]

# Vstupní zakódovaná zpráva
sifrovana_zprava = ".-.. . --- -.   .- .-. -.. ---"
print(f"Původní zpráva: {sifrovana_zprava}")

# Rozdělení na Morseovy znaky
znaky = sifrovana_zprava.split()
# znaky = sifrovana_zprava.split(" ")

# Výsledek
zprava = ""

# Dekódování
for morseuv_znak in znaky:
    if morseuv_znak in morseovy_znaky:
        index = morseovy_znaky.index(morseuv_znak)
        zprava += abecedni_znaky[index]
    else:
        zprava += "?"  # Neznámý znak

# Výpis výsledku
print(f"Dekódovaná zpráva: {zprava}")

Zájemci o rozdíl mezi bezparametrovým a parametrových splitem, nechť si zakomentují původní verzi o použijí druhou.

Odpovědět
12. srpna 16:25
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 32.