0

Инициализация списка с одинаковым булевым значением

13

Заголовок: Как инициализировать все значения списка булевыми значениями без использования циклов?

Текст вопроса: Я хотел бы узнать, возможно ли инициализировать все значения списка определённым булевым значением без использования циклов. Например, мне нужно создать список из N элементов, где все элементы равны False. Как это можно сделать?

2 ответ(ов)

1

Вы можете сделать это так:

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

ПРИМЕЧАНИЕ: Имейте в виду, что никогда не следует использовать это с списками изменяемых типов, имеющих одно и то же значение, иначе вы можете столкнуться с неожиданным поведением, как в приведенном ниже примере:

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

Как вы можете видеть, изменения, внесенные в один внутренний список, отражаются во всех остальных.

0

Ваш код создаёт список, заполненный значениями False, используя генератор списка. Вот как он выглядит:

my_list = [False for i in range(n)]

Такой подход позволяет вам изменить отдельные элементы списка, поскольку он создаёт каждый элемент независимо.

Хотя, строго говоря, это всё же является циклом.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь