Python中的列表中的布尔值翻转

2024-04-20 01:05:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python中的布尔列表

mylist  = [True , True, False,...]

我想把它改成逻辑相反的[False, False, True , ...] 在Python中有没有一种内置的方法来实现这一点(类似于调用not(mylist)),而不需要手动编写循环来反转元素?


Tags: 方法falsetrue元素列表not手动逻辑
3条回答
>>> import operator
>>> mylist  = [True , True, False]
>>> map(operator.not_, mylist)
[False, False, True]

对于numpy.ndarray,一元颚化符(~)将执行此操作。所以:

>>> import numpy
>>> mylist = [True, True, False]
>>> ~numpy.array(mylist)
array([False, False, True], dtype=bool)
>>> list(~numpy.array(mylist))
[False, False, True]

请注意,翻转列表的元素类型为numpy.bool,而不是bool。

清单理解很简单:

mylist  = [True , True, False]

[not i for i in mylist]

收益率

[False, False, True]

相关问题 更多 >