#python #python-3.x #list #list-comprehension
#python #python-3.x #Список #понимание списка
Вопрос:
Я просматриваю список из 3 элементов, что-то вроде:
for i in range(3):
и пытается создать следующие списки на каждой соответствующей итерации:
[True, True, False, False, False, False]
[False, False, True, True, False, False]
[False, False, False, False, True, True]
Какой был бы хороший способ в python сделать это?
Комментарии:
1. «наиболее эффективный» не является четко определенной концепцией.
2. отметил, отредактировал вопрос и текст
Ответ №1:
Вот один из способов:
>>> for i in range(3):
... print([(x // 2) == i for x in range(6)])
...
[True, True, False, False, False, False]
[False, False, True, True, False, False]
[False, False, False, False, True, True]
Ответ №2:
Попробуйте так:
k = 0
for i in range(3):
# Other tasks
myList = [False for x in range(4)]
myList[k:k] = [True,True]
print(myList)
k = 2
Комментарии:
1. Проще:
for k in range(0, 6, 2)
2. Но @wjandrea я думаю, что OP специально хочет сгенерировать их внутри
range(3)
цикла3. @Wasif уверен, но
i
не используется, так что это бессмысленно. В качестве альтернативы вы могли бы сделатьk = i*2
внутри цикла.
Ответ №3:
L = [False, False, False, False, True, True]
for _ in range(3):
L = L[-2:] L[:4]
print(L)