# Kā pārvērst virknes sarakstos Python

Python valodā saraksti ir maināmi objekti, bet virknes ir nemaināmas. **Pārveidojot virkni par sarakstu**, varat mainīt, pievienot vai dzēst atsevišķus rakstzīmes vai virknes apakšdaļas.

## Kādi ir dažādie veidi, kā Python virknes pārvērst sarakstos?

Kad jūs pārveidojat virkni par sarakstu, jūs maināt datu struktūru, lai tā varētu atbalstīt **saraksta operācijas**. Tas savukārt paplašina jums pieejamo datu apstrādes iespēju klāstu.

Šeit ir daži no visbiežāk izmantotajiem veidiem, kā pārvērst virkni sarakstā:

### `split()`

Python sadalīšanas metode sadala virkni uz **apakšvirkņu sarakstu**, pamatojoties uz konkrētu atdalītāju vai modeli. Šīs metodes vispārīgā sintakse ir:

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

- `string`: Šī ir sākotnējā virkne.
- `sep` (pēc izvēles): Tas ir atdalītājs, kurā virkne tiek sadalīta. Ja atdalītājs nav norādīts, metode pēc noklusējuma sadala virkni pēc atstarpēm.
- `maxsplit` (pēc izvēles): `maxsplit` nosaka maksimālo sadalījumu skaitu. Ja vēlaties, lai Python veiktu visus iespējamos sadalījumus, varat iestatīt parametru -1 vai atstāt to tukšu.

Piemērs:

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

rezultāts:

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

f-strings ir Python string formāts, kas pieņem jebkuru izteiksmi kā vietas turētāju izliektās iekavās. Izmantojot šo formātu, mēs varam apvienot `split()` funkcijas rezultātu ar string `"List of colors = "`.

### `list()`

Python funkcija list() tiek izmantota, lai pārvērstu dažādas datu struktūras, tostarp virknes, sarakstos. Ja kā argumentu funkcijai `list()` nododat virkni, **katrs virknes burts vai rakstzīme tiek saglabāta kā atsevišķs elements** rezultātā iegūtajā sarakstā.

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

### Saraksta izpratne

Saraksta izpratne ir kompakts veids, kā izveidot sarakstus, apvienojot **cilpas un nosacījumus** vienā rindā.

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

Šajā piemērā mēs sākam ar virkni `"Hello World"` un izveidojam sarakstu, kas tiek saglabāts `char_list`. Saraksta izpratne atkārtojas caur katru burtu (`char`) virknē `text` un pievieno to kā atsevišķu elementu sarakstam `char_list`.

### String sadalīšana

String slicing ir vēl viena metode Python string pārveidošanai sarakstos. Tā izgūst **string daļas** (substrings) un saglabā tās kā elementus sarakstā.

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

- `start`: Šis ir indekss, kur sākas sadalīšana. Apakšvirkne sākas ar rakstzīmi šajā pozīcijā.
- `stop`: Tas ir indekss, kurā sadalīšana beidzas. Sekvence ietver visus rakstzīmes līdz šai pozīcijai, bet neieskaitot šo rakstzīmi.
- `step` (pēc izvēles): Tas ir attālums starp katru atlasīto rakstzīmi, veicot sadalīšanu. Tas norāda, cik rakstzīmes jāizlaiž starp katru atlasīto rakstzīmi.

`convert(string)` ir **lietotāja definēta funkcija**, kas pārvērš virkni par rakstzīmju sarakstu. Kad tiek izpildīts izteiksme `list1[:0] = string`, virknes atsevišķās rakstzīmes tiek ievietotas tukšajā sarakstā `list1`.

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

### `re.findall()`

Jūs varat izmantot funkciju `re.findall()`, lai pārvērstu Python virknes sarakstos, atrodot **visus regulārā izteikuma modeļa gadījumus** virknē un izgūstot tos kā sarakstu.

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

Regulārais izteiksme `r'\d+'` meklē vienu vai vairākus secīgus ciparus tekstā un atgriež tos kā atsevišķus elementus sarakstā.

### `enumerate()`

Python funkcija `enumerate()` atgūst gan indeksu, gan vērtību katram elementam iterējamā datu struktūrā. Ja vēlaties, lai sarakstā būtu tikai vērtības (t. i., teksta simboli), varat kombinēt `enumerate()` ar saraksta izpratni:

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

### JSON

JSON ir modulis, ko izmanto, lai lasītu un rakstītu JSON datus un konvertētu Python datu struktūras JSON formātā un otrādi. Ja vēlaties konvertēt Python virknes sarakstos, izmantojot JSON moduli, to var izdarīt, analizējot **virkni Python 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]
```

`json.loads()` funkcija analizē JSON virkni un pārvērš to atbilstošā Python objektā, šajā gadījumā sarakstā.

### `ast.literal`

`ast` (abstrakto sintakses koku) modulis ļauj izvērtēt virkni Python datu struktūrā, kur virkne tiek interpretēta kā Python literāls. Ja jūsu virkne ir derīgā Python literāla formātā (piemēram, saraksts, vārdnīca, skaitlis utt.), jūs to varat droši konvertēt atbilstošajā Python objektā, izmantojot `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]
```

Uzziniet vairāk par to, kā [Python valodā darbojas teksta pārveidošana datuma un laika formātā](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/parverst-virknes-datetime-python/), mūsu digitālajā ceļvedī.


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/python-virknu-parveidosana-sarakstos/](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/python-virknu-parveidosana-sarakstos/) for AI/LLM consumption.