# Πώς να μετατρέψετε συμβολοσειρές σε λίστες στην Python

Στην Python, οι λίστες είναι μεταβλητά αντικείμενα, ενώ οι συμβολοσειρές είναι αμετάβλητες. **Μετατρέποντας μια συμβολοσειρά σε λίστα**, μπορείτε να τροποποιήσετε, να προσθέσετε ή να αφαιρέσετε μεμονωμένους χαρακτήρες ή υποτμήματα της συμβολοσειράς.

## Ποιοι είναι οι διαφορετικοί τρόποι μετατροπής των συμβολοσειρών Python σε λίστες;

Όταν μετατρέπετε μια συμβολοσειρά σε λίστα, αλλάζετε τη δομή των δεδομένων έτσι ώστε να μπορεί να υποστηρίζει **λειτουργίες λίστας**. Αυτό, με τη σειρά του, επεκτείνει το φάσμα των επιλογών χειρισμού δεδομένων που έχετε στη διάθεσή σας.

Ακολουθούν μερικές από τις πιο συνηθισμένες μεθόδους για τη μετατροπή μιας συμβολοσειράς σε λίστα:

### `split()`

Η μέθοδος split της Python χωρίζει μια συμβολοσειρά σε μια **λίστα υποσυμβολοσειρών** με βάση ένα συγκεκριμένο διαχωριστικό ή μοτίβο. Η γενική σύνταξη για αυτή τη μέθοδο είναι:

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

- `string`: Αυτή είναι η αρχική συμβολοσειρά.
- `sep` (προαιρετικό): Αυτός είναι ο διαχωριστής όπου θα χωριστεί η συμβολοσειρά. Εάν δεν παρέχεται διαχωριστής, η μέθοδος χωρίζει την συμβολοσειρά σε κενά διαστήματα.
- `maxsplit` (προαιρετικό): `maxsplit` ορίζει τον μέγιστο αριθμό διαχωρισμών που θα γίνουν. Αν θέλετε η Python να πραγματοποιήσει όλους τους πιθανούς διαχωρισμούς, μπορείτε είτε να ορίσετε την παράμετρο σε -1 είτε να την αφήσετε κενή.

Ένα παράδειγμα:

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

οδηγεί στο αποτέλεσμα:

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

Οι f-strings είναι μια μορφή συμβολοσειράς Python που δέχεται οποιαδήποτε έκφραση ως σύμβολο κράτησης θέσης σε αγκύλες. Χρησιμοποιώντας αυτή τη μορφή, μπορούμε να συνδυάσουμε το αποτέλεσμα της συνάρτησης `split()` με τη συμβολοσειρά `"List of colors = "`.

### `list()`

Η συνάρτηση Python list() χρησιμοποιείται για τη μετατροπή διαφόρων δομών δεδομένων, συμπεριλαμβανομένων των συμβολοσειρών, σε λίστες. Εάν περάσετε μια συμβολοσειρά ως όρισμα στη `list()`, **κάθε γράμμα ή χαρακτήρας της συμβολοσειράς αποθηκεύεται ως ξεχωριστό στοιχείο** στη λίστα που προκύπτει.

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

### Κατανόηση λίστας

Η κατανόηση λιστών είναι ένας συμπαγής τρόπος δημιουργίας λιστών συνδυάζοντας **βρόχους και συνθήκες** σε μία μόνο γραμμή.

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

Σε αυτό το παράδειγμα, ξεκινάμε με τη συμβολοσειρά `"Hello World"` και δημιουργούμε μια λίστα που αποθηκεύεται στο `char_list`. Η κατανόηση της λίστας επαναλαμβάνεται για κάθε γράμμα (`char`) στη συμβολοσειρά `text` και το προσθέτει ως ένα μεμονωμένο στοιχείο στη λίστα `char_list`.

### Κοπή συμβολοσειράς

Το string slicing είναι μια άλλη μέθοδος για τη μετατροπή των συμβολοσειρών Python σε λίστες. Εξάγει **τμήματα μιας συμβολοσειράς** (υποσυμβολοσειρές) και τα αποθηκεύει ως στοιχεία σε μια λίστα.

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

- `start`: Αυτός είναι ο δείκτης όπου ξεκινά η διαχωρισμός. Το υποστρώμα ξεκινά με τον χαρακτήρα σε αυτή τη θέση.
- `stop`: Αυτός είναι ο δείκτης όπου τελειώνει η διαίρεση. Η ακολουθία περιλαμβάνει όλους τους χαρακτήρες μέχρι, αλλά όχι συμπεριλαμβανομένου του χαρακτήρα σε αυτή τη θέση.
- `step` (προαιρετικό): Αυτή είναι η απόσταση μεταξύ κάθε επιλεγμένου χαρακτήρα κατά την εκτέλεση της διαίρεσης. Καθορίζει πόσοι χαρακτήρες πρέπει να παραλειφθούν μεταξύ κάθε επιλεγμένου χαρακτήρα.

`convert(string)` είναι μια **συνάρτηση** που **ορίζεται από τον χρήστη** και μετατρέπει μια συμβολοσειρά σε μια λίστα χαρακτήρων. Όταν εκτελείται η έκφραση `list1[:0] = string`, οι μεμονωμένοι χαρακτήρες της συμβολοσειράς εισάγονται στην κενή λίστα `list1`.

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

### `re.findall()`

Μπορείτε να χρησιμοποιήσετε τη συνάρτηση `re.findall()` για να μετατρέψετε συμβολοσειρές Python σε λίστες, εντοπίζοντας **όλες τις εμφανίσεις ενός μοτίβου κανονικής έκφρασης** σε μια συμβολοσειρά και ανακτώντας τις ως λίστα.

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

Η κανονική έκφραση `r'\d+'` αναζητά ένα ή περισσότερα διαδοχικά ψηφία σε ένα κείμενο και τα επιστρέφει ως ξεχωριστά στοιχεία σε μια λίστα.

### `enumerate()`

Η συνάρτηση `enumerate()` της Python ανακτά τόσο τον δείκτη όσο και την τιμή κάθε στοιχείου σε μια επαναλήψιμη δομή δεδομένων. Αν θέλετε η λίστα να περιλαμβάνει μόνο τις τιμές (δηλαδή τους χαρακτήρες της συμβολοσειράς), μπορείτε να συνδυάσετε `enumerate()` με μια λίστα κατανόησης:

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

### JSON

Το JSON είναι ένα module που χρησιμοποιείται για την ανάγνωση και εγγραφή δεδομένων JSON και τη μετατροπή δομών δεδομένων Python σε μορφή JSON και αντίστροφα. Αν θέλετε να μετατρέψετε συμβολοσειρές Python σε λίστες χρησιμοποιώντας το module JSON, μπορείτε να το κάνετε αναλύοντας μια **συμβολοσειρά σε ένα αντικείμενο 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]
```

Η συνάρτηση `json.loads()` αναλύει τη συμβολοσειρά JSON και τη μετατρέπει σε ένα αντίστοιχο αντικείμενο Python, στην περίπτωση αυτή, μια λίστα.

### `ast.literal`

Η ενότητα `ast` (Abstract Syntax Trees) σού επιτρέπει να αξιολογήσεις μια συμβολοσειρά σε μια δομή δεδομένων Python, όπου η συμβολοσειρά ερμηνεύεται ως κυριολεκτική Python. Αν η συμβολοσειρά σου είναι σε έγκυρη μορφή κυριολεκτικής Python (όπως λίστα, λεξικό, αριθμός κ.λπ.), μπορείς να την μετατρέψεις με ασφάλεια στο αντίστοιχο αντικείμενο Python χρησιμοποιώντας `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]
```

Μάθετε περισσότερα σχετικά με τον [τρόπο μετατροπής μιας συμβολοσειράς σε ημερομηνία και ώρα στην Python](https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/metatropi-symboloseiron-se-imerominia-kai-ora-stin-python/) στον Ψηφιακό Οδηγό μας.


This is a markdown version of: [https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/metatropi-symboloseiron-python-se-listes/](https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/metatropi-symboloseiron-python-se-listes/) for AI/LLM consumption.