Une liste d'éléments:
mylist = [3,7,8,9,2,4,6]
Je voulais juste changer toute sa valeur en vrai
mylist = [True,True,True,True,True,True,True]
Je peux le faire avec pour la boucle.
Voulait faire de manière pythonique de préférence un paquebot
4 réponses
Vous pouvez utiliser lambda
avec la fonction map
In [11]: mylist = [3,7,8,9,2,4,6]
#python 2.7
In [12]: mylist = map(lambda x: True,mylist)
#python 3.x
In [12]: mylist = list(map(lambda x: True,mylist))
In [13]: mylist
Out[13]: [True, True, True, True, True, True, True]
Cela devrait le faire pour vous:
>>> mylist = [True] * len(mylist)
Explication: Initialiser la liste avec la valeur par défaut = True et la même taille que la liste existante.
mylist = [True for _ in mylist]
Il y a plusieurs façons de le faire (de cette façon, nous sommes plus en Perl-land qu'en Python):
# List duplication
mylist = [True] * len(mylist)
# Comprehensions
mylist = [True for x in mylist]
# Fill with itertools
from itertools import repeat
mylist = repeat(True, len(mylist) - 1)
Tous ces remplacent la liste donnée liée à mylist
par une nouvelle liste. Si vous souhaitez muter la liste vers laquelle mylist
pointe en place, vous pouvez utiliser l'affectation d'indexation:
# Assignment (mutates existing list)
mylist[:] = [True] * len(mylist)
Questions connexes
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.