Python kalboje sąrašai yra keičiami objektai, o eilutės yra ne­kin­ta­mos. Pa­ver­čiant eilutę sąrašu, galima keisti, pridėti arba pašalinti atskirus simbolius arba eilutės dalis.

Kokiais būdais galima kon­ver­tuo­ti Python stygas į sąrašus?

Kai kon­ver­tuo­ja­te eilutę į sąrašą, pa­kei­čia­te duomenų struktūrą taip, kad ji galėtų palaikyti sąrašo ope­ra­ci­jas. Tai savo ruožtu išplečia jums pri­ei­na­mas duomenų tvarkymo galimybes.

Čia pa­tei­kia­mi keli daž­niau­siai naudojami būdai, kaip kon­ver­tuo­ti eilutę į sąrašą:

split()

Python split metodas padalina eilutę į dalinių eilutės sąrašą pagal konkretų skyriklį arba šabloną. Bendras šio metodo sintaksas yra toks:

string.split(sep=None, maxsplit=-1)
python
  • string: Tai yra ori­gi­na­lu­sis stygos tekstas.
  • sep (ne­pri­va­lo­ma): tai yra skyriklis, kuriuo eilutė turi būti padalyta. Jei skyriklis ne­nu­ro­dy­tas, metodas pagal nu­ma­ty­tuo­sius nu­sta­ty­mus eilutę padalys pagal tarpus.
  • maxsplit (ne­pri­va­lo­ma): maxsplit apibrėžia maksimalų galimų pa­da­li­ji­mų skaičių. Jei norite, kad Python atliktų visus galimus pa­da­li­ji­mus, galite nustatyti parametrą -1 arba palikti jį tuščią.

Pavyzdys:

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

re­zul­ta­tas:

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

f-stringai yra Python stygos formatas, kuris priima bet kokį išraišką kaip vietos laikiklį skliaus­tuo­se. Naudodami šį formatą, galime sujungti split() funkcijos rezultatą su stygos "List of colors = ".

list()

Python funkcija list() naudojama įvairioms duomenų struk­tū­roms, įskaitant eilutes, kon­ver­tuo­ti į sąrašus. Jei kaip argumentą list() per­duo­da­te eilutę, kiekviena eilutės raidė ar simbolis iš­sau­go­mas kaip atskiras elementas ga­lu­ti­nia­me sąraše.

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

Sąrašo su­pra­t­i­mas

Sąrašų su­pra­t­i­mas yra kom­pak­tiš­kas būdas kurti sąrašus, derinant ciklus ir sąlygas vienoje eilutėje.

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

Šiame pavyzdyje pradedame nuo eilutės "Hello World" ir sukuriame sąrašą, išsaugotą char_list. Sąrašo su­pra­t­i­mas kartojasi per kiekvieną raidę (char) eilutėje text ir prideda ją kaip vieną elementą į sąrašą char_list.

Stringų pjaus­ty­mas

String slicing yra dar vienas būdas kon­ver­tuo­ti Python stygas į sąrašus. Jis išskiria stygos dalis (subst­ry­gas) ir išsaugo jas kaip sąrašo elementus.

substring_list = string[start:stop:step]
python
  • start: Tai indeksas, nuo kurio prasideda skaidymas. Dalinė eilutė prasideda nuo šioje po­zi­ci­jo­je esančio simbolio.
  • stop: tai indeksas, kuriame pjaus­ty­mas baigiasi. Seka apima visus simbolius iki šioje po­zi­ci­jo­je esančio simbolio, bet jo ne­įs­kai­tant.
  • step (ne­pri­va­lo­ma): tai atstumas tarp kiekvieno pa­si­rink­tos simbolio, kai at­lie­ka­mas pjaus­ty­mas. Jis nurodo, kiek simbolių reikia praleisti tarp kiekvieno pa­si­rink­tos simbolio.

convert(string) yra vartotojo apibrėžta funkcija, kuri kon­ver­tuo­ja eilutę į simbolių sąrašą. Kai iš­reiš­ki­mas list1[:0] = string yra vykdomas, atskiri eilutės simboliai yra įterpiami į tuščią sąrašą list1.

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

re.findall()

Naudodami funkciją re.findall() galite kon­ver­tuo­ti Python eilutes į sąrašus, surandant visus re­gu­lia­rio­sios išraiškos modelio pa­si­kar­to­ji­mus eilutėje ir išgaudami juos kaip sąrašą.

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

Reguliari išraiška r'\d+' ieško vieno ar daugiau iš eilės einančių skaitmenų tekste ir grąžina juos kaip atskirus elementus sąraše.

enumerate()

Python kalbos funkcija enumerate() išgauna kiekvieno elemento indeksą ir vertę ite­ruo­ja­mo­je duomenų struk­tū­ro­je. Jei norite, kad sąrašas apimtų tik vertes (t. y. stygos simbolius), galite derinti enumerate() su sąrašo supratimu:

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

JSON

JSON yra modulis, nau­do­ja­mas JSON duomenims skaityti ir rašyti bei Python duomenų struk­tū­roms kon­ver­tuo­ti į JSON formatą ir at­virkš­čiai. Jei norite kon­ver­tuo­ti Python eilutes į sąrašus naudodami JSON modulį, galite tai padaryti iš­skai­dy­da­mi eilutę į 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 ana­li­zuo­ja JSON eilutę ir kon­ver­tuo­ja ją į ati­tin­ka­mą Python objektą, šiuo atveju – sąrašą.

ast.literal

ast (abst­rak­čių sintaksės medžių) modulis leidžia įvertinti eilutę į Python duomenų struktūrą, kurioje eilutė in­ter­pre­tuo­ja­ma kaip Python literatas. Jei jūsų eilutė yra tinkamo Python literato formato (pa­vyz­džiui, sąrašas, žodynas, skaičius ir pan.), galite ją saugiai kon­ver­tuo­ti į ati­tin­ka­mą Python objektą naudodami 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

Daugiau in­for­ma­ci­jos apie tai, kaip Python kalboje kon­ver­tuo­ti eilutę į datetime, rasite mūsų skait­me­ni­nia­me vadove.

Go to Main Menu