我正在尝试编写一个带有布尔值的代码,并将其交换为列表中的相反值。所以,让我说我开始使用100个Falses,并希望将每个Falses都改为True。然后我想将其他每一个改为False,从第二个开始。我希望这是有道理的。
一个例子是:
>>>False False False False False False False False False False
>>>True True True True True True True True True True
>>>True False True False True False True False True False
>>>True False False False True True True False False True
答案 0 :(得分:1)
使用列表理解和切片:
>>> lst = [False] * 10
>>> lst
[False, False, False, False, False, False, False, False, False, False]
>>> lst[:] = [not x for x in lst]
>>> lst
[True, True, True, True, True, True, True, True, True, True]
>>> lst[1::2] = [not x for x in lst[1::2]]
>>> lst
[True, False, True, False, True, False, True, False, True, False]
答案 1 :(得分:0)
将所有其他元素切换到相反的位置:
my_list = [False, False, False, False, False, False, False]
for index in range(0, len(my_list), 2):
my_list[index] = not my_list[index]