Pythonis stringide jagamine: split(), splitlines(), re.split() ja praktilised näited

1. Miks on vaja jagada stringe Pythonis

1.1. Stringide töötlemise olulisus

Stringide töötlemine on Pythonis väga oluline. Igapäevases tekstandmete töötlemises, andmeanalüüsi eeltöötluses ja paljudes muudes olukordades on vaja stringe jagada. Näiteks CSV-failide analüüsimisel, kasutaja sisendi töötlemisel või veebiskreipingu kaudu saadud tekstandmete töötlemisel on stringide jagamine asendamatu meetod.

1.2. Mida sellest artiklist õpid

Selles artiklis selgitame laialdaselt, kuidas jagada stringe Pythonis, alates põhilistest meetoditest kuni keerukamate regulaaravaldiste kasutamiseni. Keskendume peamiselt meetoditele nagu split(), splitlines(), re.split() ja lisame ka praktilisi koodinäiteid.

2. Stringide jagamine split() meetodiga Pythonis

2.1. Mis on split() meetod?

split() on üks kõige põhilisemaid stringide töötlemise meetodeid Pythonis. See jagab stringi määratud eraldaja (delimeetri) järgi ja tagastab tulemuse listina. Vaikimisi kasutatakse eraldajana tühikuid (tühik, tabeldus, reavahetus).

text = "apple banana cherry"
fruits = text.split()
print(fruits)  # Väljund: ['apple', 'banana', 'cherry']

2.2. Eraldaja määramine

Stringi saab jagada ka konkreetse eraldaja järgi. Näiteks kui string on eraldatud koma või semikooloniga, saab seda teha järgmiselt:

text = "apple,banana,cherry"
fruits = text.split(",")
print(fruits)  # Väljund: ['apple', 'banana', 'cherry']

2.3. Jagamise kordade piiramine

split() meetodi teise argumendina saab määrata, mitu korda string jagatakse.

text = "apple,banana,cherry,orange"
fruits = text.split(",", 2)
print(fruits)  # Väljund: ['apple', 'banana', 'cherry,orange']

See on kasulik, kui soovid jagada ainult osaliselt ja jätta osa stringist muutmata.

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. Stringi jagamine splitlines() meetodiga reavahetuste järgi

3.1. splitlines() meetodi ülevaade

splitlines() jagab stringi reavahetuste järgi. See on eriti kasulik, kui soovid töödelda faili sisu rea kaupa või tegeleda andmetega, mis sisaldavad reavahetusi.

text = """apple
banana
cherry"""
lines = text.splitlines()
print(lines)  # Väljund: ['apple', 'banana', 'cherry']

3.2. Reavahetuste säilitamine

splitlines() meetod võimaldab valida, kas reavahetused säilitatakse või mitte. Kui annad argumendiks True, jäävad reavahetused alles.

text = """applenbananancherry"""
lines = text.splitlines(True)
print(lines)  # Väljund: ['applen', 'bananan', 'cherry']

See on kasulik, kui soovid säilitada algse vormingu.

4. Stringide jagamine regulaaravaldiste abil re.split()

4.1. re.split() põhikasutus

Kasutades Pythoni re moodulit, saab stringe jagada regulaaravaldiste abil. See on kasulik, kui on vaja kasutada mitut erinevat eraldajat korraga.

import re
text = "apple123banana456cherry"
fruits = re.split(r'd+', text)
print(fruits)  # Väljund: ['apple', 'banana', 'cherry']

4.2. Mitme eraldajaga jagamine

Regulaaravaldise abil saab määrata mitu eraldajat, näiteks koma, semikoolon ja tühik:

text = "apple, banana; cherry"
fruits = re.split(r'[;, ]+', text)
print(fruits)  # Väljund: ['apple', 'banana', 'cherry']

4.3. Keerukamad mustrid

re.split() on väga võimas meetod keeruliste mustrite järgi jagamiseks. Näiteks saab stringi jagada konkreetsete numbrikombinatsioonide või mustrite alusel.

text = "apple100banana200cherry"
fruits = re.split(r'd+', text)
print(fruits)  # Väljund: ['apple', 'banana', 'cherry']

 

5. Muud kasulikud meetodid: partition() ja rpartition()

5.1. partition() meetodi kasutamine

partition() jagab stringi kolmeks osaks, kasutades määratud eraldajat. Eraldaja lisatakse tulemusesse, mis teeb selle kasulikuks, kui eraldaja on oluline.

text = "apple@banana@cherry"
parts = text.partition("@")
print(parts)  # Väljund: ('apple', '@', 'banana@cherry')

5.2. rpartition() kasutamine paremalt

rpartition() toimib samamoodi kui partition(), kuid otsib eraldajat paremalt poolt. See on kasulik, kui soovid stringi jagada viimase eraldaja järgi.

text = "apple@banana@cherry"
parts = text.rpartition("@")
print(parts)  # Väljund: ('apple@banana', '@', 'cherry')

6. Koodinäited ja praktilised rakendused

6.1. Näide kasutaja sisendi töötlemisest

Näiteks, kui kasutaja sisestab andmed koma-eraldajaga, saab neid töödelda järgmiselt:

user_input = "name:apple, age:30, city:Tokyo"
info = user_input.split(", ")
for item in info:
    key, value = item.split(":")
    print(f"{key}: {value}")

6.2. Failist andmete töötlemine

Faili andmete töötlemisel on sageli vaja jagada sisu rea kaupa:

with open('data.txt', 'r') as file:
    lines = file.read().splitlines()
print(lines)

 

7. Kokkuvõte: Stringide jagamine Pythonis

7.1. Kokkuvõte

Python pakub mitmeid meetodeid stringide jagamiseks. Kasutades split(), splitlines(), re.split(), partition() ja teisi meetodeid, saab andmeid tõhusalt eeltöödelda ja analüüsida.

7.2. Järgmised sammud

Proovi artiklis tutvustatud meetodeid väikestes projektides või skriptides, et selgitada välja, milline neist sobib kõige paremini sinu vajadustele.