Comment puis-je écrire ce code sur une seule ligne?

aa = []
for s in complete:
    aa.append(s)

Je sais qu'il existe plusieurs solutions. J'apprécierais vraiment si vous pouviez les écrire. Merci!

2
John Smith 9 août 2016 à 21:29

6 réponses

Meilleure réponse

Comme ça (attention aux cordes):

aa.extend(complete)

Ou avec compréhension de liste:

aa = list(s for s in complete)

Ou si vous voulez copier la liste, vous pouvez suivre:

aa = complete[:]
aa = complete.copy() # same
aa = list(complete) # same

Ou utilisez simplement '+':

aa += complete
2
ailin 9 août 2016 à 19:01

J'aime faire de telles choses avec une compréhension de la liste:

aa = [s for s in complete]

Cependant, selon le type de complete, et si vous souhaitez ou non utiliser un package comme numpy, il peut y avoir un moyen plus rapide, tel que

import numpy as np
aa = np.array(complete)

Je suis sûr qu'il y a bien d'autres façons aussi :)

1
lensonp 9 août 2016 à 18:36

Les listes de compréhension sont impressionnantes:

aa = [s for s in complete]
2
depperm 9 août 2016 à 18:31

Pour étendre aa, utilisez la fonction extend():

aa.extend(s for s in complete)

Ou

aa.extend(complete)

Si vous vouliez simplement égaliser les deux, un simple = est très bien:

aa = complete
0
Vaibhav Bajaj 9 août 2016 à 18:36

Si vous souhaitez ajouter des valeurs au tableau sur une seule ligne, cela dépend de la façon dont les valeurs sont données. Si vous avez un autre list, vous pouvez également utiliser extend:

my_list = []
my_list.extend([1,2,3,4])
0
robert.otherone 9 août 2016 à 18:33

Tant qu'il vous suffit de définir aa égal à complete, utilisez simplement

aa = complete

2
cameronroytaylor 9 août 2016 à 18:38