# Python string to list: cómo convertir cadenas en listas

En Python, las listas son objetos mutables, mientras que las cadenas son inmutables. Al **convertir una cadena en una lista**, puedes modificar, añadir o eliminar caracteres individuales o subsecciones de la cadena.

## Python string to list: métodos de conversión

Por “Python string to list” se entiende la conversión de una cadena en una lista. En este proceso, la cadena se transforma en una estructura de datos que admite **operaciones con listas**, lo que permite diversos tipos de manipulación de datos.

A continuación, te presentamos los métodos más frecuentes de convertir una cadena de texto en una lista:

### split()

El método [Python split](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/python-split/) se encarga de dividir una cadena en una **lista de subcadenas** basándose en un separador o patrón específico. Esta es generalmente su sintaxis:

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

- `string`: es la cadena original.
- `sep` (opcional): es el separador en el que se divide la cadena. Si no se especifica ningún separador, el método divide la cadena en espacios.
- `maxsplit` (opcional): define el número máximo de divisiones que se van a realizar. Si no se especifica o se establece en -1, se realizarán todas las divisiones posibles.

Este ejemplo

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

da como resultado

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

Los f strings son un método de [Python string format](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/python-string-format/) y permiten incluir cualquier expresión como marcador de posición entre llaves. Así, en este caso se puede unir el resultado de la función `split()` con la cadena `"List of colors = "` (lista de colores).

### list()

La función [Python list](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/python-list/) se utiliza para convertir distintas estructuras de datos, incluidas las cadenas, en listas. Al pasar una cadena como argumento a la función `list()`, **cada letra o carácter de la cadena se almacena como un elemento independiente** en la lista resultante.

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

### List Comprehension

La función List Comprehension es una forma concisa de crear listas combinando **blucles y condiciones** en una sola línea de código. Por ejemplo:

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

En este caso, se ha utilizado la cadena `"Hello World"`. A partir de ella se ha creado una lista y se ha almacenado en `char_list`. La List Comprehension ha recorrido entonces cada letra `char` de la cadena `text` y la ha añadido como un único elemento a la lista `char_list`.

### String slicing

El string slicing o corte de cadena es otro de los métodos Python string to list. Se encarga de extraer las **secuencias parciales de una cadena** y guardarlas como elementos de una lista.

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

- `start`: el índice en el que comienza el slicing o corte; la porción de la cadena comienza en el carácter situado en esta posición.
- `stop`: el índice en el que termina el corte; la secuencia termina antes del carácter situado en esta posición.
- `step` (opcional): el paso o incremento con el que se realiza el corte; especifica cuántos caracteres se omiten entre cada carácter seleccionado.

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

`convert(string)` es una **función personalizada** que convierte una cadena en una lista de caracteres. Cuando se ejecuta la expresión `list1[:0] = string`, cada carácter de la cadena se añade a la lista vacía `list1`.

### re.findall()

La función `re.findall()` es un método Python string to list que puedes utilizar para encontrar **todas las coincidencias de una expresión regular** en una cadena y devolverlas como una lista.

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

La expresión regular `r'\d+'` busca uno o más dígitos consecutivos en el texto y los devuelve como elementos separados en una lista.

### enumerate()

`enumerate()` es una función integrada de Python que sirve para obtener tanto el índice como el valor de cada elemento en una estructura de datos iterable. Si quieres que la lista solo contenga los valores (es decir, los caracteres de la cadena), puedes aplicar `enumerate()` junto con una List Comprehension tal y como se muestra a continuación:

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

### JSON

JSON es un módulo que se utiliza para leer y escribir datos JSON y para convertir estructuras de datos Python en formato JSON y viceversa. Con la función Python string to list, el módulo JSON te permite **convertir un string en un objeto de Python** que podrás usar en tu código.

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

La función `json.loads()` analiza la cadena JSON y la convierte en un objeto Python correspondiente, en este caso una lista.

### ast.literal

El módulo `ast` (Abstract Syntax Trees) permite evaluar una cadena en una estructura de datos de Python en la que la cadena se interpreta como un literal de Python. Si tienes una cadena que está en un formato literal válido de Python (por ejemplo, una lista, un diccionario, un número, etc.), puedes utilizar `ast.literal_eval()` para convertir esta cadena en el objeto Python correspondiente de manera segura.

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

En la Digital Guide también te explicamos cómo convertir [string to datetime](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/python-string-to-datetime-claves-de-la-conversion/).


This is a markdown version of: [https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/python-string-to-list/](https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/python-string-to-list/) for AI/LLM consumption.