1

我正在尝试编写一个采用布尔值并将其交换为列表中相反值的代码。因此,假设我从 100 个 False 开始,并希望将每一个都更改为 True。然后,我想从第二个开始,每隔一个更改一次。我希望这是有道理的。

一个例子是:

>>>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 
4

2 回答 2

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]
于 2013-11-13T05:44:19.607 回答
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]
于 2013-11-13T05:45:55.983 回答