Foto de João M.
João Vitor da há 2 anos
Enviada pelo
Site

Transformar str em lista

l = "['doc']"

minha lista l esta em str, quero transormar ela em lista de novo

Python Geral Geral Geral
4 respostas
Professor Lucas M.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar Lucas

coloca assim :  l = list('doc')  print(l)  ou assim:  l = list(['doc'])  print(l)

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta

Envie sua pergunta

Professor Vitor D.
Respondeu há 2 anos
Contatar Vitor

Para transformar uma string em uma lista, você pode usar a função eval().

No seu exemplo, a string '["doc"]' representa uma lista com um único elemento, 'doc'. Para transformá-la em uma lista novamente, você pode fazer o seguinte:

l = '["doc"]'
minha_lista = eval(l)

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professor Jhonni S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano
Contatar Jhonni

import ast

# Sua string
l = "['doc']"

# Converter a string de volta para uma lista
lista_resultante = ast.literal_eval(l)

# Imprimir a lista resultante
print(lista_resultante)

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Professora Thalita S.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 10 meses
Contatar Thalita

Se você tem uma string que representa uma lista, como `l = "['doc']"`, e quer convertê-la de volta para uma lista real, você pode usar a função `ast.literal_eval()` ou a função `eval()` (embora `eval` seja menos seguro e não recomendado para strings com entradas não confiáveis). A função `literal_eval` da biblioteca `ast` é mais segura, pois avalia apenas literais Python válidos (como listas, dicionários, números, etc.) e ignora qualquer código malicioso.

### Usando `ast.literal_eval()`

```python
import ast

l = "['doc']"

# Convertendo a string para uma lista real
lista = ast.literal_eval(l)

print(lista)  # Saída: ['doc']
print(type(lista))  # Saída: <class 'list'>
```

### Como funciona:

- **`ast.literal_eval()`**: Essa função avalia a string como um literal Python válido. Ou seja, se a string é uma representação válida de uma lista, tupla, dicionário, etc., ela será convertida de volta para o tipo correspondente.

### Exemplo com múltiplos itens na lista:

Se a sua string contiver mais itens na lista, como:

```python
l = "['doc', 'image', 'pdf']"
```

A conversão funcionará da mesma forma:

```python
lista = ast.literal_eval(l)

print(lista)  # Saída: ['doc', 'image', 'pdf']
print(type(lista))  # Saída: <class 'list'>
```

### Alternativa usando `eval()`

Se você optar por usar `eval()`, aqui está como poderia ser feito:

```python
l = "['doc']"

# Convertendo a string para uma lista real usando eval (não recomendado para dados não confiáveis)
lista = eval(l)

print(lista)  # Saída: ['doc']
print(type(lista))  # Saída: <class 'list'>
```

### **Atenção**: 
O uso de `eval()` pode ser perigoso, especialmente se você estiver lidando com entradas de fontes externas, pois pode executar qualquer código Python, o que pode ser uma vulnerabilidade de segurança.

Por isso, sempre que possível, use `ast.literal_eval()` para converter strings representando listas ou outros tipos literais, já que ele não executa código arbitrário.

Se precisar de mais ajuda, estarei por aqui!

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta

Aprenda do seu jeito, no seu ritmo

Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App
Escaneie o QR Code para baixar