-1
votes

Comment supprimer Double [] d'une liste?

J'ai une liste comme celle-ci:

 my_lst = [1,2,3,4]


1 commentaires

@Sociopathe: il pourrait être à l'intérieur d'un dict , et c'est techniquement une annotation de type légale dans le python moderne, mais oui, il est peu probable que tout seul soit ce que quiconque veut réellement.


5 Réponses :


2
votes

Vous avez une liste de listes.

my_lst = my_lst[0] #get the first list of the list


0 commentaires

2
votes
my_lst = my_lst[0]
You have a list with one element, which is itself a list.  You want the variable to just be that first element, the list 1,2,3,4.

0 commentaires

3
votes

Le double [[]] code> est parce que vous avez une liste code> contenant une liste code>. Pour sortir la liste interne code>, il suffit d'indexer: xxx pré>

ou le décompressez: p>

[my_lst] = my_lst


0 commentaires

1
votes

Vous pouvez utiliser iTertools pour atteindre cela sans écrire votre boucle explicite si la longueur de la liste extérieure pourrait en être plus d'une. xxx


0 commentaires

-1
votes

Vous pouvez réduire 1 dimension à l'aide de somme code>.

my_lst=sum(my_lst,[])
# [1,2,3,4]


1 commentaires

C'est une approche générale très terrible. Il se trouve bien (si quelque peu bizarre) pour la liste unique interne , mais c'est un Schlemiel l'algorithme du peintre en matière d'aplatissement généralisée d'un iérêlé de la liste S, avec Quadratic Runtime (où Liste ISISANT L'Itérateur produit Par iTERTOOLS.CHAIN ​​ / iTERTOOLS.CHAIN.FROM_ITERABLE est la solution correcte pour ce cas, ayant une runni-roulement linéaire).