Pythonis on loendid muutuvad objektid, samas kui stringid on muu­tu­ma­tud. Stringi loendiks tei­sen­da­des saate muuta, lisada või eemaldada stringi üksikuid märke või ala­jao­tusi.

Millised on erinevad viisid Python-stringide tei­sen­da­miseks ni­me­kir­ja­deks?

Kui tei­sen­date stringi ni­me­kir­jaks, muudate and­me­st­ruk­tuuri nii, et see toetaks ni­me­kir­ja­ope­rat­sioone. See omakorda laiendab teile kät­te­saa­da­vaid andmete tööt­le­mise võimalusi.

Siin on mõned le­vi­nui­mad meetodid stringi ni­me­kir­jaks tei­sen­da­miseks:

split()

Pythoni split-meetod jagab stringi alamst­rin­gide loendiks, tuginedes kindlale eral­dajale või mustrile. Selle meetodi üldine süntaks on:

string.split(sep=None, maxsplit=-1)
python
  • string: See on algne string.
  • sep (va­li­ku­line): See on eraldaja, mille abil string jagatakse. Kui eraldajat ei ole määratud, jagab meetod stringi vaikimisi tühikute järgi.
  • maxsplit (va­li­ku­line): maxsplit määrab mak­si­maalse jagamiste arvu. Kui soovite, et Python teeks kõik või­ma­li­kud jagamised, võite määrata pa­ra­meetri väär­tu­seks -1 või jätta selle tühjaks.

Näide:

text = "blue,green,yellow,red"
print(f"List of colors = {text.split(',')}")
python

viib väl­jundini:

List of colors = ['blue', 'green', 'yellow', 'red']
python

f-stringid on Python-stringi formaat, mis akt­sep­tee­rib mis tahes väljendit kui paiga­hoid­jat lok­ki­sul­gu­des. Seda formaati kasutades saame kom­bi­nee­rida funkt­siooni split() tulemuse stringiga "List of colors = ".

list()

Pythoni funkt­siooni list() ka­su­ta­takse erinevate and­me­st­ruk­tuu­ride, seal­hul­gas stringide tei­sen­da­miseks ni­me­kir­ja­deks. Kui edastate stringi ar­gu­men­dina funkt­sioo­nile list(), sal­ves­ta­takse stringi iga täht või märk tu­le­mus­li­kus ni­me­kir­jas eraldi ele­men­dina.

text = "Hello"
char_list = list(text)
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o']
python

Loendi mõistmine

Loendite mõistmine on kompaktne viis loendite loomiseks, kom­bi­nee­ri­des silmused ja tin­gi­mu­sed ü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']
python

Selles näites alustame stringiga "Hello World" ja loome nimekirja, mis sal­ves­ta­takse char_list. Nimekirja mõistmine kordab iga tähe (char) stringis text ja lisab selle ühe ele­men­dina nimekirja char_list.

Stringi lõikamine

Stringi tü­kel­da­mine on veel üks meetod Python-stringide muut­miseks ni­me­kir­ja­deks. See eraldab stringi osad (alamst­rin­gid) ja salvestab need nimekirja ele­men­ti­dena.

substring_list = string[start:stop:step]
python
  • start: See on indeks, kust lõikamine algab. Alajaotus algab selle po­sit­siooni tä­he­mär­giga.
  • stop: See on indeks, kus lõikamine lõpeb. Jada sisaldab kõiki märke kuni selle po­sit­siooni märgini, kuid seda märki ise ei sisalda.
  • step (va­li­ku­line): 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 funkt­sioon, mis teisendab stringi tä­he­mär­kide loendiks. Kui väljend list1[:0] = string täi­de­takse, lisatakse stringi üksikud tä­he­mär­gid tühja loendisse list1.

def convert(string):
    list1 = []
    list1[:0] = string
    return list1
str1 = "xyz"
print(convert(str1))
# Output: ['x', 'y', 'z']
python

re.findall()

Funkt­siooni re.findall() abil saate tei­sen­dada Python-stringid ni­me­kir­ja­deks, otsides stringist kõik re­gu­laarse väljendi mustri esi­ne­mised ja kuvades need ni­me­kir­jana.

import re
text = "123 and 456 are numbers."
numbers_list = re.findall(r'\d+', text)
print(numbers_list)
# Output: ['123', '456']
python

Re­gu­laarne väljend r'\d+' otsib tekstist ühe või mitu jär­jes­ti­kust numbrit ja tagastab need eraldi ele­men­ti­dena loendis.

enumerate()

Pythoni funkt­sioon enumerate() võtab ite­ra­tiivse and­me­st­ruk­tuuri iga elemendi indeksi ja väärtuse. Kui soovite, et nimekiri sisaldaks ainult väärtusi (st stringi märke), võite kom­bi­nee­rida enumerate() nimekirja aru­saa­mi­sega:

text = "Python"
char_list = [char for index, char in enumerate(text)]
print(char_list)
# Output: ['P', 'y', 't', 'h', 'o', 'n']
python

JSON

JSON on moodul, mida ka­su­ta­takse JSON-andmete lu­ge­miseks ja kir­ju­ta­miseks ning Python-and­me­st­ruk­tuu­ride tei­sen­da­miseks JSON-vor­min­gusse ja vastupidi. Kui soovite Python-stringe JSON-mooduli abil ni­me­kir­ja­deks tei­sen­dada, saate seda teha stringi Python-objektiks par­si­mi­sega.

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]
python

Funkt­sioon json.loads() analüüsib JSON-stringi ja teisendab selle vastavaks Python-objektiks, antud juhul ni­me­kir­jaks.

ast.literal

Moodul ast (Abstract Syntax Trees) võimaldab teil hinnata stringi Python and­me­st­ruk­tuu­ris, kus stringi tõl­gen­da­takse Python-li­te­raa­lina. Kui teie string on kehtivas Python-literaali formaadis (nagu nimekiri, sõnastik, number jne), saate selle ohutult tei­sen­dada 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]
python

Li­sa­tea­vet stringi datetime’iks tei­sen­da­mise kohta Pythonis leiate meie di­gi­taal­sest juhendist.

Go to Main Menu