Kuidas teisendada stringid loenditeks Pythonis
Pythonis on loendid muutuvad objektid, samas kui stringid on muutumatud. Stringi loendiks teisendades saate muuta, lisada või eemaldada stringi üksikuid märke või alajaotusi.
Millised on erinevad viisid Python-stringide teisendamiseks nimekirjadeks?
Kui teisendate stringi nimekirjaks, muudate andmestruktuuri nii, et see toetaks nimekirjaoperatsioone. See omakorda laiendab teile kättesaadavaid andmete töötlemise võimalusi.
Siin on mõned levinuimad meetodid stringi nimekirjaks teisendamiseks:
split()
Pythoni split-meetod jagab stringi alamstringide loendiks, tuginedes kindlale eraldajale või mustrile. Selle meetodi üldine süntaks on:
string.split(sep=None, maxsplit=-1)pythonstring: See on algne string.sep(valikuline): See on eraldaja, mille abil string jagatakse. Kui eraldajat ei ole määratud, jagab meetod stringi vaikimisi tühikute järgi.maxsplit(valikuline):maxsplitmäärab maksimaalse jagamiste arvu. Kui soovite, et Python teeks kõik võimalikud jagamised, võite määrata parameetri väärtuseks -1 või jätta selle tühjaks.
Näide:
text = "blue,green,yellow,red"
print(f"List of colors = {text.split(',')}")pythonviib väljundini:
List of colors = ['blue', 'green', 'yellow', 'red']pythonf-stringid on Python-stringi formaat, mis aktsepteerib mis tahes väljendit kui paigahoidjat lokkisulgudes. Seda formaati kasutades saame kombineerida funktsiooni split() tulemuse stringiga "List of colors = ".
list()
Pythoni funktsiooni list() kasutatakse erinevate andmestruktuuride, sealhulgas stringide teisendamiseks nimekirjadeks. Kui edastate stringi argumendina funktsioonile list(), salvestatakse stringi iga täht või märk tulemuslikus nimekirjas eraldi elemendina.
text = "Hello"
char_list = list(text)
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o']pythonLoendi mõistmine
Loendite mõistmine on kompaktne viis loendite loomiseks, kombineerides silmused ja tingimused ühes reas.
text = "Hello World"
char_list = [char for char in text]
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']pythonSelles näites alustame stringiga "Hello World" ja loome nimekirja, mis salvestatakse char_list. Nimekirja mõistmine kordab iga tähe (char) stringis text ja lisab selle ühe elemendina nimekirja char_list.
Stringi lõikamine
Stringi tükeldamine on veel üks meetod Python-stringide muutmiseks nimekirjadeks. See eraldab stringi osad (alamstringid) ja salvestab need nimekirja elementidena.
substring_list = string[start:stop:step]pythonstart: See on indeks, kust lõikamine algab. Alajaotus algab selle positsiooni tähemärgiga.stop: See on indeks, kus lõikamine lõpeb. Jada sisaldab kõiki märke kuni selle positsiooni märgini, kuid seda märki ise ei sisalda.step(valikuline): See on lõikamise käigus valitud tähtede vaheline kaugus. See määrab, mitu tähemärki tuleb valitud tähtede vahel vahele jätta.
convert(string) on kasutaja määratud funktsioon, mis teisendab stringi tähemärkide loendiks. Kui väljend list1[:0] = string täidetakse, lisatakse stringi üksikud tähemärgid tühja loendisse list1.
def convert(string):
list1 = []
list1[:0] = string
return list1
str1 = "xyz"
print(convert(str1))
# Output: ['x', 'y', 'z']pythonre.findall()
Funktsiooni re.findall() abil saate teisendada Python-stringid nimekirjadeks, otsides stringist kõik regulaarse väljendi mustri esinemised ja kuvades need nimekirjana.
import re
text = "123 and 456 are numbers."
numbers_list = re.findall(r'\d+', text)
print(numbers_list)
# Output: ['123', '456']pythonRegulaarne väljend r'\d+' otsib tekstist ühe või mitu järjestikust numbrit ja tagastab need eraldi elementidena loendis.
enumerate()
Pythoni funktsioon enumerate() võtab iteratiivse andmestruktuuri iga elemendi indeksi ja väärtuse. Kui soovite, et nimekiri sisaldaks ainult väärtusi (st stringi märke), võite kombineerida enumerate() nimekirja arusaamisega:
text = "Python"
char_list = [char for index, char in enumerate(text)]
print(char_list)
# Output: ['P', 'y', 't', 'h', 'o', 'n']pythonJSON
JSON on moodul, mida kasutatakse JSON-andmete lugemiseks ja kirjutamiseks ning Python-andmestruktuuride teisendamiseks JSON-vormingusse ja vastupidi. Kui soovite Python-stringe JSON-mooduli abil nimekirjadeks teisendada, saate seda teha stringi Python-objektiks parsimisega.
import json
json_string = '[1, 2, 3, 4, 5]'
list_from_json = json.loads(json_string)
print(list_from_json)
# Output: [1, 2, 3, 4, 5]pythonFunktsioon json.loads() analüüsib JSON-stringi ja teisendab selle vastavaks Python-objektiks, antud juhul nimekirjaks.
ast.literal
Moodul ast (Abstract Syntax Trees) võimaldab teil hinnata stringi Python andmestruktuuris, kus stringi tõlgendatakse Python-literaalina. Kui teie string on kehtivas Python-literaali formaadis (nagu nimekiri, sõnastik, number jne), saate selle ohutult teisendada vastavaks Python-objektiks, kasutades ast.literal_eval().
import ast
string = "[1, 2, 3, 4, 5]"
my_list = ast.literal_eval(string)
print(my_list)
# Output: [1, 2, 3, 4, 5]pythonLisateavet stringi datetime’iks teisendamise kohta Pythonis leiate meie digitaalsest juhendist.