Kako pretvoriti nize v sezname v Pythonu
V Pythonu so seznami spremenljivi objekti, medtem ko so nizi nespremenljivi. S pretvorbo niza v seznam lahko spreminjate, dodajate ali odstranjujete posamezne znake ali podsklope niza.
Na kakšne različne načine lahko pretvorimo nize v Pythonu v sezname?
Ko pretvorite niz v seznam, spremenite strukturo podatkov, tako da podpira operacije s seznami. To pa razširi obseg možnosti za manipulacijo podatkov, ki so vam na voljo.
Tukaj je nekaj najpogostejših metod za pretvorbo niza v seznam:
split()
Metoda split v Pythonu razdeli niz v seznam podnizov na podlagi določenega ločevalnika ali vzorca. Splošna sintaksa za to metodo je:
string.split(sep=None, maxsplit=-1)pythonstring: 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):maxsplitdoloča največje število razdelitev, ki se lahko izvedejo. Če želite, da Python izvede vse možne razdelitve, lahko parameter nastavite na -1 ali ga pustite praznega.
Primer:
text = "blue,green,yellow,red"
print(f"List of colors = {text.split(',')}")pythonvodi do izhoda:
List of colors = ['blue', 'green', 'yellow', 'red']pythonf-nizi so format nizov v Pythonu, ki sprejema kateri koli izraz kot nadomestni 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 podatkovnih 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']pythonRazumevanje seznama
Seznam razumevanja je kompakten način za ustvarjanje seznamov s kombinacijo 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']pythonV tem primeru začnemo z nizom "Hello World" in ustvarimo seznam, shranjen v char_list. Razumevanje 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]pythonstart: 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 preskočiti med vsakim izbranim znakom.
convert(string) je uporabniško definirana 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']pythonre.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']pythonRedni izraz r'\d+' išče eno ali več zaporednih številk v besedilu in jih vrne kot ločene elemente v seznamu.
enumerate()
Funkcija enumerate() v Pythonu pridobi indeks in vrednost vsakega elementa v iterabilni podatkovni strukturi. Če želite, da seznam vključuje samo vrednosti (tj. znake niza), lahko kombinirate enumerate() z razumevanjem seznama:
text = "Python"
char_list = [char for index, char in enumerate(text)]
print(char_list)
# Output: ['P', 'y', 't', 'h', 'o', 'n']pythonJSON
JSON je modul, ki se uporablja za branje in pisanje podatkov JSON ter pretvarjanje podatkovnih struktur Python v format JSON in obratno. Če želite pretvoriti nize Python v sezname z uporabo modula JSON, lahko to storite tako, da niz razčlenite 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]pythonFunkcija 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 podatkovno strukturo Python, kjer se niz interpretira kot Pythonov literal. Če je niz v veljavnem formatu Pythonovega literala (kot je seznam, slovar, število itd.), ga lahko varno pretvorite 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]pythonVeč o tem, kako deluje pretvorba niza v datum in čas v Pythonu, si preberite v našem digitalnem vodniku.