Ebből az oktatóanyagból megtudhatja, hogyan használhatja a Python split() metódusát egy karakterlánc felosztására karakterláncok listájára.
Amikor Python-karakterláncokkal dolgozik, számos beépített karakterlánc-módszert használhat a karakterláncok módosított másolatainak beszerzéséhez, például nagybetűssé alakításhoz, karakterláncok rendezéséhez stb. Az egyik ilyen módszer a .split(), amely egy Python karakterláncot karakterláncok listájára bont, és a kódolási példákon keresztül többet megtudhatunk róla.
Az oktatóprogram végére a következőket tanulja meg:
- hogyan működik a .split() metódus
- hogyan lehet testreszabni a felosztást a sep és maxsplit paraméterekkel
Kezdjük!
Tartalomjegyzék
A split() metódus szintaxisa Pythonban
Íme az általános szintaxis a Python split() metódusának bármely érvényes karakterláncon történő használatához:
string.split(sep, maxsplit) # Parameters: sep, maxsplit # Returns: A list of strings
Itt a karakterlánc bármely érvényes Python karakterlánc lehet.
Mind a sep, mind a maxsplit paraméter nem kötelező.
- A sep azt az elválasztót jelöli, amelyen a karakterláncot fel szeretné osztani. Karakterláncként kell megadni.
- A maxsplit egy egész szám, amely megadja, hogy hányszor szeretné felosztani a karakterláncot.
Az alapértelmezett értékeket a rendszer akkor használja, ha nem ad meg opcionális paramétereket.
- Ha nem adja meg kifejezetten a sep értéket, a szóköz lesz az alapértelmezett elválasztó.
- Ha nem adja meg a maxsplit értékét, akkor az alapértelmezés szerint -1, ami azt jelenti, hogy a karakterlánc fel lesz osztva az elválasztó minden előfordulásakor.
A szintaxis megfogalmazása egyszerű nyelven:
A split() metódus a sep paraméterben megadott elválasztó előfordulásakor maxsplit karakterláncot oszt fel.
Most, hogy megtanultuk a Python split() metódus szintaxisát, folytassuk néhány példa kódolásával.
Osszon fel egy Python karakterláncot karakterláncok listájára
Ha van Python 3 telepítve van a gépére, akkor ezzel az oktatóanyaggal kódolhat a következő kódrészletek Python REPL-ben való futtatásával.
A REPL elindításához futtassa a következő parancsok egyikét a terminálról:
$ python $ python -i
▶️ Ezeket a példákat a etoppc.com Python szerkesztőjében is kipróbálhatod.
Ebben a példában a py_str egy Python karakterlánc. Hívjuk meg a .split() metódust a py_str-en paraméterek nélkül, és figyeljük meg a kimenetet.
py_str = "Learn how to use split() in Python" py_str.split() # Output ['Learn', 'how', 'to', 'use', 'split()', 'in', 'Python']
Mint fentebb látható, a karakterlánc minden szóköz esetén fel van osztva.
Osszon fel egy Python karakterláncot az elválasztók előfordulásáról
#1. Első példaként osszuk fel a py_str karakterláncot dupla aláhúzásjellel (__) elválasztóként.
py_str = "All__the__best" py_str.split(sep='__') # Output ['All', 'the', 'best']
#2. Vegyünk egy másik példát. Itt a py_str három mondatot tartalmaz, mindegyiket egy pont (.) zárja le.
py_str = "I love coding. Python is cool. I'm learning Python in 2022" py_str.split(sep='.') # Output ['I love coding', ' Python is cool', " I'm learning Python in 2022"]
▶️ Ha a .split() metódust ezen a karakterláncon hívjuk, akkor a „.” elválasztóként a kapott lista három mondatot tartalmaz, amint az a fenti kódcellában látható.
#3. Tegyünk fel néhány kérdést:
- Mi történik, ha az elválasztó soha nem fordul elő a karakterláncban?
- Hogyan történik ebben az esetben a szétválás?
Íme egy példa:
Megpróbáljuk felosztani a py_str-t a csillag előfordulásakor
py_str = "This line contains no asterisk." py_str.split(sep='*') # Output ['This line contains no asterisk.']
– ami nem fordul elő.
Mivel ebben az esetben nem lehet felosztást végrehajtani, az eredménylista a teljes karakterláncot tartalmazza.
A következő részben megnézzük, hogyan használhatjuk a split() metódust egy szöveges fájl tartalmán.
Egy Python-fájl tartalmának felosztása
Amikor Pythonban szöveges fájlokkal dolgozik, előfordulhat, hogy fel kell osztania a fájl tartalmát – elválasztó alapján – a könnyebb feldolgozás érdekében.
Íme egy minta szöveges fájl:
with open('sample.txt') as f: content = f.read() str_list= content.split(sep='...') for string in str_list: print(string,end='')
Az alábbi kódrészlet bemutatja, hogyan kell használni a split használatát a minta szövegfájl tartalmán.
- A fenti kód a következőket teszi:
- A környezetkezelővel a „sample.txt” szövegfájl megnyitásához és a vele való munkához használja.
- Beolvassa a fájl tartalmát a .read() metódussal az f fájlobjektumban.
- Felosztja az elválasztó ellipszis (…) előfordulásának tartalmát egy str_list listára.
Az egyes karakterláncok eléréséhez végigfut az str_liston, és kinyomtatja azokat.
# Output This is a sample text file It contains info on Getting started with <a href="https://etoppc.com.com/pcap-certification/">programming in Python</a> According to the 2022 StackOverflow Developer Survey Python is one of the most-loved programming languages So what are you waiting for? Start learning!
Íme a kimenet.
Gyakorlatként megpróbálhatja felosztani egy szöveges fájl tartalmát bármelyik elválasztón.
Osszon fel egy Python karakterláncot darabokra
Ha egyszer feloszt egy karakterláncot, két darabot kap; kétszer elosztva hármat kapunk.
📋 Általában, ha egy karakterláncot K-szer osztasz fel, akkor K + 1 darabot kapsz.
Ezt az alábbiakban szemléltetjük.
Hogyan működik a maxsplit paraméter (a szerző képe)
py_str = "Chunk#1 I'm a larger chunk, Chunk#2" py_str.split(maxsplit=1) # Output ['Chunk#1', "I'm a larger chunk, Chunk#2"]
#1. A maxsplit értéket 1-gyel állítjuk be. Nem adtunk meg elválasztót, így a felosztás alapértelmezés szerint a szóközökön történik.
Annak ellenére, hogy a lista második darabja szóközöket tartalmaz, a felosztás nem történik meg, mert a felosztást most az egy maxsplit értéke vezérli.
py_str = "Chunk#1 Chunk#2 I'm one large Chunk#3, even though I contain whitespaces" py_str.split(maxsplit=2) # Output ['Chunk#1', 'Chunk#2', "I'm one large Chunk#3, even though I contain whitespaces"]
#2. Növeljük a maxsplit értéket 2-re, és figyeljük meg, hogyan történik a felosztás a következő példában.
Az előző példához hasonlóan a maxsplit érték határozza meg a felosztások számát. A szóköz első és második előfordulása után három darabot kapunk, felosztásokat.
#3. Mi történik, ha a maxsplit értéket nagyobb értékre állítja be, mint az elválasztó előfordulásainak száma?
py_str = "There, are, only, 4, commas" py_str.split(maxsplit=8) # Output ['There,', 'are,', 'only,', '4,', 'commas']
A következő kódcellában a maxsplit értéket 8-ra állítjuk, ha a karakterlánc csak négy vesszőt tartalmaz.
Itt a felosztási módszer felosztja a py_str-t a vessző mind a négy előfordulásakor. Még ha megpróbálja is a maxsplit értékét -1-nél kisebb értékre, például -7-re állítani, a felosztás az elválasztó minden előfordulásakor megtörténik.
Ezután állítsuk össze mindazt, amit tanultunk, és használjuk mindkét sep maxsplit paramétert.
Osszon fel egy Python karakterláncot darabokra egy elválasztón
py_str = "Chunk#1, Chunk#2, I'm one large Chunk#3, even though I contain a ," py_str.split(sep = ',',maxsplit=2) # Output ['Chunk#1', ' Chunk#2', " I'm one large Chunk#3, even though I contain a ,"]
#1. Tegyük fel, hogy a py_str karakterláncot három részre kell osztanunk a vessző (,) előfordulásakor. Ehhez a metódushívásban a sep értéket ‘,’-re, a maxsplit értékét pedig 2-re állíthatjuk.
Ahogy a kimeneten látható, a felosztás kétszer történik az elválasztó első két előfordulásakor.
#2. A szeparátornak nem kell mindig speciális karakternek lennie. Ez lehet speciális karakterek sorozata, például a korábban használt dupla aláhúzás, vagy akár egy részkarakterlánc is.
py_str = "You need to learn data structures, learn algorithms, and learn more!" py_str.split(sep = 'learn',maxsplit=2) # Output ['You need to ', ' data structures, ', ' algorithms, and learn more!']
Állítsuk be a ‘learn’ karakterláncot sep argumentumként, és nézzük meg, hogyan történik a felosztás a maxsplit változó értékeinél. Itt a maxsplit értéket 2-re állítjuk.
py_str = "You need to learn data structures, learn algorithms, and learn more!" py_str.split(sep = 'learn',maxsplit=-1) # Output ['You need to ', ' data structures, ', ' algorithms, and ', ' more!']
#3. Ha fel szeretné osztani a py_str-t a ‘learn’ karakterlánc minden előfordulásakor, akkor hívhatjuk ezt a .split() metódust a sep = ‘learn’ beállításával – a maxsplit paraméter nélkül. Ez egyenértékű a maxsplit érték explicit -1-re állításával, amint az az alábbi kódcellában látható.
Látjuk, hogy a felosztás a „tanulás” minden előfordulásakor előfordul.
Becsomagolás
Remélem, most már megértette, hogyan kell használni a .split() metódust Python karakterláncokkal.
- Íme az oktatóanyag összefoglalása:
- A Python beépített .split() metódusa egy karakterláncot karakterláncok listájára bont.
- A string.split() használatával feloszthatja a karakterláncot az alapértelmezett elválasztó, a szóköz minden előfordulásakor.
Használja a string.split(sep,maxsplit) karakterláncot a maxsplit karakterlánc felosztásához, ahányszor a szeparátor előfordulása esetén. Az eredményül kapott lista maxsplit+1 elemet tartalmaz.
Következő lépésként megtanulhatja, hogyan ellenőrizheti, hogy a Python-karakterláncok palindromok vagy anagrammák-e.