Initialiser la liste avec la même valeur bool

Est-il possible sans boucles d'initialiser toutes les valeurs de liste à certains bool? Par exemple je veux avoir une liste de N éléments Faux.

31
demandé sur Rohit Jain 2012-11-14 20:21:03

3 réponses

, Vous pouvez le faire comme ceci: -

>>> [False] * 10
[False, False, False, False, False, False, False, False, False, False]

REMARQUE: - Notez que vous ne devriez jamais faire cela avec un list de mutable types avec la même valeur, sinon vous verrez des comportements surprenants comme dans l'exemple ci-dessous: -

>>> my_list = [[10]] * 3
>>> my_list
[[10], [10], [10]]
>>> my_list[0][0] = 5
>>> my_list
[[5], [5], [5]]

Comme vous pouvez le voir, les modifications que vous avez apportées dans une liste interne se reflètent dans toutes.

84
répondu Rohit Jain 2012-11-14 16:44:50
    my_list = [False for i in range(n)]

Cela vous permettra de changer des éléments individuels car il construit chaque élément indépendamment.

Bien que, cette technique est une boucle.

10
répondu Noah 2017-01-19 01:51:00

Lorsque l'espace des questions, bytearray est un meilleur choix. C'est environ cinq fois plus efficace que la liste des solutions booléennes.

Cela crée un tableau de N valeurs, initialisé à zéro:

B = bytearray(N)
3
répondu Waylon Flinn 2017-02-24 18:34:42