# 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:

```python
string.split(sep=None, maxsplit=-1)
```

- `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 razdelitev, ki se lahko izvedejo. Če želite, da Python izvede vse možne razdelitve, lahko parameter nastavite na -1 ali ga pustite praznega.

Primer:

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

vodi do izhoda:

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

f-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.

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

### Razumevanje seznama

Seznam razumevanja je kompakten način za ustvarjanje seznamov s kombinacijo **zank in pogojev** v eni vrstici.

```python
text = "Hello World"
char_list = [char for char in text]
print(char_list)
# Output: ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
```

V 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.

```python
substring_list = string[start:stop:step]
```

- `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 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`.

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

### `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.

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

Redni 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:

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

### JSON

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**.

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

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 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()`.

```python
import ast
string = "[1, 2, 3, 4, 5]"
my_list = ast.literal_eval(string)
print(my_list)
# Output: [1, 2, 3, 4, 5]
```

Več o tem, kako [deluje pretvorba niza v datum in čas v Pythonu](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/pretvarjanje-nizov-v-datum-in-cas-v-pythonu/), si preberite v našem digitalnem vodniku.


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/pretvarjanje-nizov-python-v-sezname/](https://www.ionos.com/sl-si/digitalguide/spletne-strani/razvoj-spletnih-strani/pretvarjanje-nizov-python-v-sezname/) for AI/LLM consumption.