Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中反转列表中的所有布尔值?_Python_List - Fatal编程技术网

如何在python中反转列表中的所有布尔值?

如何在python中反转列表中的所有布尔值?,python,list,Python,List,我想反转列表中的所有布尔值,如下所示: a=[True,False,True] 为此: b=[False,True,False] 我试过了 not a 但是它只给了我假。你可以使用列表理解和而不是所有的项目 a=[True,False,True] b=[not c for c in a] 不是一个提供的False,因为它检查列表是空的,因为它不返回True,所以它被转换为False a=[True] not a False a=[False] not a True 您可以将not操作

我想反转列表中的所有布尔值,如下所示:

a=[True,False,True]
为此:

b=[False,True,False]
我试过了

not a

但是它只给了我假。

你可以使用列表理解和
而不是所有的项目

a=[True,False,True] 
b=[not c for c in a]
不是一个
提供的False,因为它检查列表是空的,因为它不返回True,所以它被转换为False

a=[True]
not a
False
a=[False]
not a
True

您可以将
not
操作符作为函数映射到每个项目。还要确保
导入操作员

map(operator.not_, [True, False, True]) # apply the not unary operator to each list item

您可以使用:

a = [True, False, True]
b = [not bool for bool in a]
这基本上类似于:

a = [True, False, True]
b = []
for bool in a:
    b.append(not bool)
或者更一般地说:

new_list = [expression for item in a_list]
基本上与以下内容相同:

new_list = []
for item in a_list:
    new_list.append(expression)
其中
表达式
可以包含


您的版本无法运行的原因是,not只能对布尔值进行操作,并且会隐式地将传递给它的任何内容转换为布尔值。不适用于这一点会给你带来
False

非常感谢!很好用<代码>非a
被解释为
非布尔(a)
,而
布尔(a)
真的
,因为
a
不是空的(请参阅)。请注意,如果
a
numpy
数组而不是列表,则可以使用
b=~a