V Pythonu so seznami spre­men­lji­vi objekti, medtem ko so nizi ne­spre­men­lji­vi. S pretvorbo niza v seznam lahko spre­mi­nja­te, dodajate ali od­stra­nju­je­te posamezne znake ali podsklope niza.

Na kakšne različne načine lahko pre­tvo­ri­mo nize v Pythonu v sezname?

Ko pre­tvo­ri­te niz v seznam, spre­me­ni­te strukturo podatkov, tako da podpira operacije s seznami. To pa razširi obseg možnosti za ma­ni­pu­la­ci­jo podatkov, ki so vam na voljo.

Tukaj je nekaj naj­po­go­stej­ših metod za pretvorbo niza v seznam:

split()

Metoda split v Pythonu razdeli niz v seznam podnizov na podlagi do­lo­če­ne­ga lo­če­val­ni­ka ali vzorca. Splošna sintaksa za to metodo je:

string.split(sep=None, maxsplit=-1)
python
  • string: To je izvirni niz.
  • sep (neobvezno): To je ločilo, kjer se niz razdeli. Če ločilo ni navedeno, metoda privzeto razdeli niz na prazna mesta.
  • maxsplit (neobvezno): maxsplit določa največje število raz­de­li­tev, ki se lahko izvedejo. Če želite, da Python izvede vse možne raz­de­li­tve, lahko parameter nastavite na -1 ali ga pustite praznega.

Primer:

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

vodi do izhoda:

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

f-nizi so format nizov v Pythonu, ki sprejema kateri koli izraz kot na­do­me­stni znak v oklepajih. S pomočjo tega formata lahko združimo rezultat funkcije split() z nizom "List of colors = ".

list()

Funkcija Python list() se uporablja za pretvorbo različnih po­dat­kov­nih struktur, vključno z nizi, v sezname. Če kot argument funkciji list() predate niz, se vsaka črka ali znak niza shrani kot ločen element v končnem seznamu.

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

Ra­zu­me­va­nje seznama

Seznam ra­zu­me­va­nja je kompakten način za ustvar­ja­nje seznamov s kom­bi­na­ci­jo zank in pogojev v eni vrstici.

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

V tem primeru začnemo z nizom "Hello World" in ustvarimo seznam, shranjen v char_list. Ra­zu­me­va­nje seznama ponovi vsak znak (char) v nizu text in ga doda kot posamezen element na seznam char_list.

Rezanje nizov

Rezanje nizov je še ena metoda za pretvorbo nizov v Pythonu v sezname. Iz niza izloči dele (podnize) in jih shrani kot elemente v seznamu.

substring_list = string[start:stop:step]
python
  • start: To je indeks, kjer se začne razrez. Podniz se začne z znakom na tej poziciji.
  • stop: To je indeks, kjer se rezanje konča. Zaporedje vključuje vse znake do tega znaka, vendar ne vključuje tega znaka.
  • step (neobvezno): To je razdalja med vsakim izbranim znakom, ko se izvaja rezanje. Določa, koliko znakov je treba pre­sko­či­ti med vsakim izbranim znakom.

convert(string) je upo­rab­ni­ško de­fi­ni­ra­na funkcija, ki pretvori niz v seznam znakov. Ko se izvede izraz list1[:0] = string, se posamezni znaki niza vstavijo v prazen seznam list1.

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

re.findall()

Funkcijo re.findall() lahko uporabite za pretvorbo nizov Python v sezname, tako da poiščete vse pojavitve vzorca rednega izraza v nizu in jih pridobite kot seznam.

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

Redni izraz r'\d+' išče eno ali več za­po­re­dnih številk v besedilu in jih vrne kot ločene elemente v seznamu.

enumerate()

Funkcija enumerate() v Pythonu pridobi indeks in vrednost vsakega elementa v ite­ra­bil­ni po­dat­kov­ni strukturi. Če želite, da seznam vključuje samo vrednosti (tj. znake niza), lahko kom­bi­ni­ra­te enumerate() z ra­zu­me­va­njem seznama:

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

JSON

JSON je modul, ki se uporablja za branje in pisanje podatkov JSON ter pre­tvar­ja­nje po­dat­kov­nih struktur Python v format JSON in obratno. Če želite pre­tvo­ri­ti nize Python v sezname z uporabo modula JSON, lahko to storite tako, da niz raz­čle­ni­te v objekt Python.

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

Funkcija json.loads() analizira JSON niz in ga pretvori v ustrezen Python objekt, v tem primeru v seznam.

ast.literal

Modul ast (Abstract Syntax Trees) omogoča pretvorbo niza v po­dat­kov­no strukturo Python, kjer se niz in­ter­pre­ti­ra kot Pythonov literal. Če je niz v veljavnem formatu Pytho­no­ve­ga literala (kot je seznam, slovar, število itd.), ga lahko varno pre­tvo­ri­te v ustrezen Pythonov objekt z uporabo 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

Več o tem, kako deluje pretvorba niza v datum in čas v Pythonu, si preberite v našem di­gi­tal­nem vodniku.

Go to Main Menu