Python valodā saraksti ir maināmi objekti, bet virknes ir ne­mai­nā­mas. Pār­vei­do­jot virkni par sarakstu, varat mainīt, pievienot vai dzēst at­se­viš­ķus rakstzī­mes vai virknes ap­akš­da­ļas.

Kādi ir dažādie veidi, kā Python virknes pārvērst sarakstos?

Kad jūs pār­vei­do­jat virkni par sarakstu, jūs maināt datu struktūru, lai tā varētu atbalstīt saraksta ope­rā­ci­jas. Tas savukārt paplašina jums pieejamo datu apstrādes iespēju klāstu.

Šeit ir daži no visbiežāk iz­man­to­ta­jiem veidiem, kā pārvērst virkni sarakstā:

split()

Python sa­da­lī­ša­nas metode sadala virkni uz ap­akš­virkņu sarakstu, pa­ma­to­jo­ties uz konkrētu at­da­lī­tā­ju vai modeli. Šīs metodes vispārīgā sintakse ir:

string.split(sep=None, maxsplit=-1)
python
  • string: Šī ir sākotnējā virkne.
  • sep (pēc izvēles): Tas ir at­da­lī­tājs, kurā virkne tiek sadalīta. Ja at­da­lī­tājs nav norādīts, metode pēc no­klu­sē­ju­ma sadala virkni pēc atstarpēm.
  • maxsplit (pēc izvēles): maxsplit nosaka maksimālo sa­da­lī­ju­mu skaitu. Ja vēlaties, lai Python veiktu visus ie­spē­ja­mos sa­da­lī­ju­mus, varat iestatīt parametru -1 vai atstāt to tukšu.

Piemērs:

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

rezultāts:

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

f-strings ir Python string formāts, kas pieņem jebkuru izteiksmi kā vietas turētāju izliektās iekavās. Iz­man­to­jot šo formātu, mēs varam apvienot split() funkcijas rezultātu ar string "List of colors = ".

list()

Python funkcija list() tiek izmantota, lai pārvērstu dažādas datu struk­tū­ras, tostarp virknes, sarakstos. Ja kā argumentu funkcijai list() nododat virkni, katrs virknes burts vai rakstzīme tiek saglabāta kā atsevišķs elements rezultātā iegūtajā sarakstā.

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

Saraksta izpratne

Saraksta izpratne ir kompakts veids, kā izveidot sarakstus, ap­vie­no­jot cilpas un no­sa­cī­ju­mus vienā rindā.

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

Šajā piemērā mēs sākam ar virkni "Hello World" un iz­vei­do­jam sarakstu, kas tiek saglabāts char_list. Saraksta izpratne at­kār­to­jas caur katru burtu (char) virknē text un pievieno to kā atsevišķu elementu sarakstam char_list.

String sa­da­lī­ša­na

String slicing ir vēl viena metode Python string pār­vei­do­ša­nai sarakstos. Tā izgūst string daļas (substrings) un saglabā tās kā elementus sarakstā.

substring_list = string[start:stop:step]
python
  • start: Šis ir indekss, kur sākas sa­da­lī­ša­na. Ap­akš­virkne sākas ar rakstzīmi šajā pozīcijā.
  • stop: Tas ir indekss, kurā sa­da­lī­ša­na beidzas. Sekvence ietver visus rakstzī­mes līdz šai pozīcijai, bet ne­ie­s­kai­tot šo rakstzīmi.
  • step (pēc izvēles): Tas ir attālums starp katru atlasīto rakstzīmi, veicot sa­da­lī­ša­nu. Tas norāda, cik rakstzī­mes jāizlaiž starp katru atlasīto rakstzīmi.

convert(string) ir lietotāja definēta funkcija, kas pārvērš virkni par rakstzīm­ju sarakstu. Kad tiek izpildīts izteiksme list1[:0] = string, virknes at­se­viš­ķās rakstzī­mes tiek ie­vie­to­tas tukšajā sarakstā list1.

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

re.findall()

Jūs varat izmantot funkciju re.findall(), lai pārvērstu Python virknes sarakstos, atrodot visus regulārā izteikuma modeļa gadījumus virknē un izgūstot tos kā sarakstu.

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

Re­gu­lā­rais izteiksme r'\d+' meklē vienu vai vairākus secīgus ciparus tekstā un atgriež tos kā at­se­viš­ķus elementus sarakstā.

enumerate()

Python funkcija enumerate() atgūst gan indeksu, gan vērtību katram elementam iterējamā datu struktūrā. Ja vēlaties, lai sarakstā būtu tikai vērtības (t. i., teksta simboli), varat kombinēt enumerate() ar saraksta izpratni:

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

JSON

JSON ir modulis, ko izmanto, lai lasītu un rakstītu JSON datus un kon­ver­tē­tu Python datu struk­tū­ras JSON formātā un otrādi. Ja vēlaties konvertēt Python virknes sarakstos, iz­man­to­jot JSON moduli, to var izdarīt, ana­li­zē­jot virkni Python objektā.

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

json.loads() funkcija analizē JSON virkni un pārvērš to at­bil­sto­šā Python objektā, šajā gadījumā sarakstā.

ast.literal

ast (abstrakto sintakses koku) modulis ļauj izvērtēt virkni Python datu struktūrā, kur virkne tiek in­ter­pre­tē­ta kā Python literāls. Ja jūsu virkne ir derīgā Python literāla formātā (piemēram, saraksts, vārdnīca, skaitlis utt.), jūs to varat droši konvertēt at­bil­sto­ša­jā Python objektā, iz­man­to­jot 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

Uzziniet vairāk par to, kā Python valodā darbojas teksta pār­vei­do­ša­na datuma un laika formātā, mūsu di­gi­tā­la­jā ceļvedī.

Go to Main Menu