# Kuidas teisendada stringid loenditeks Pythonis

Pythonis on loendid muutuvad objektid, samas kui stringid on muutumatud. **Stringi loendiks teisendades** saate muuta, lisada või eemaldada stringi üksikuid märke või alajaotusi.

## Millised on erinevad viisid Python-stringide teisendamiseks nimekirjadeks?

Kui teisendate stringi nimekirjaks, muudate andmestruktuuri nii, et see toetaks **nimekirjaoperatsioone**. See omakorda laiendab teile kättesaadavaid andmete töötlemise võimalusi.

Siin on mõned levinuimad meetodid stringi nimekirjaks teisendamiseks:

### `split()`

Pythoni split-meetod jagab stringi **alamstringide loendiks**, tuginedes kindlale eraldajale või mustrile. Selle meetodi üldine süntaks on:

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

- `string`: See on algne string.
- `sep` (valikuline): See on eraldaja, mille abil string jagatakse. Kui eraldajat ei ole määratud, jagab meetod stringi vaikimisi tühikute järgi.
- `maxsplit` (valikuline): `maxsplit` määrab maksimaalse jagamiste arvu. Kui soovite, et Python teeks kõik võimalikud jagamised, võite määrata parameetri väärtuseks -1 või jätta selle tühjaks.

Näide:

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

viib väljundini:

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

f-stringid on Python-stringi formaat, mis aktsepteerib mis tahes väljendit kui paigahoidjat lokkisulgudes. Seda formaati kasutades saame kombineerida funktsiooni `split()` tulemuse stringiga `"List of colors = "`.

### `list()`

Pythoni funktsiooni list() kasutatakse erinevate andmestruktuuride, sealhulgas stringide teisendamiseks nimekirjadeks. Kui edastate stringi argumendina funktsioonile `list()`, **salvestatakse stringi iga täht või märk** tulemuslikus nimekirjas **eraldi elemendina**.

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

### Loendi mõistmine

Loendite mõistmine on kompaktne viis loendite loomiseks, kombineerides **silmused ja tingimused** ühes reas.

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

Selles näites alustame stringiga `"Hello World"` ja loome nimekirja, mis salvestatakse `char_list`. Nimekirja mõistmine kordab iga tähe (`char`) stringis `text` ja lisab selle ühe elemendina nimekirja `char_list`.

### Stringi lõikamine

Stringi tükeldamine on veel üks meetod Python-stringide muutmiseks nimekirjadeks. See eraldab **stringi osad** (alamstringid) ja salvestab need nimekirja elementidena.

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

- `start`: See on indeks, kust lõikamine algab. Alajaotus algab selle positsiooni tähemärgiga.
- `stop`: See on indeks, kus lõikamine lõpeb. Jada sisaldab kõiki märke kuni selle positsiooni märgini, kuid seda märki ise ei sisalda.
- `step` (valikuline): See on lõikamise käigus valitud tähtede vaheline kaugus. See määrab, mitu tähemärki tuleb valitud tähtede vahel vahele jätta.

`convert(string)` on **kasutaja määratud funktsioon**, mis teisendab stringi tähemärkide loendiks. Kui väljend `list1[:0] = string` täidetakse, lisatakse stringi üksikud tähemärgid tühja loendisse `list1`.

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

### `re.findall()`

Funktsiooni `re.findall()` abil saate teisendada Python-stringid nimekirjadeks, otsides stringist **kõik regulaarse väljendi mustri esinemised** ja kuvades need nimekirjana.

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

Regulaarne väljend `r'\d+'` otsib tekstist ühe või mitu järjestikust numbrit ja tagastab need eraldi elementidena loendis.

### `enumerate()`

Pythoni funktsioon `enumerate()` võtab iteratiivse andmestruktuuri iga elemendi indeksi ja väärtuse. Kui soovite, et nimekiri sisaldaks ainult väärtusi (st stringi märke), võite kombineerida `enumerate()` nimekirja arusaamisega:

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

### JSON

JSON on moodul, mida kasutatakse JSON-andmete lugemiseks ja kirjutamiseks ning Python-andmestruktuuride teisendamiseks JSON-vormingusse ja vastupidi. Kui soovite Python-stringe JSON-mooduli abil nimekirjadeks teisendada, saate seda teha **stringi Python-objektiks** parsimisega.

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

Funktsioon `json.loads()` analüüsib JSON-stringi ja teisendab selle vastavaks Python-objektiks, antud juhul nimekirjaks.

### `ast.literal`

Moodul `ast` (Abstract Syntax Trees) võimaldab teil hinnata stringi Python andmestruktuuris, kus stringi tõlgendatakse Python-literaalina. Kui teie string on kehtivas Python-literaali formaadis (nagu nimekiri, sõnastik, number jne), saate selle ohutult teisendada vastavaks Python-objektiks, kasutades `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]
```

Lisateavet [stringi datetime’iks teisendamise](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/muuda-stringid-pythonis-datetimeiks/) kohta [Pythonis](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/muuda-stringid-pythonis-datetimeiks/) leiate meie digitaalsest juhendist.


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/pythoni-stringide-teisendamine-nimekirjadeks/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/pythoni-stringide-teisendamine-nimekirjadeks/) for AI/LLM consumption.