Python列表理解:将数组中的所有元素设置为0或1

Python列表理解:将数组中的所有元素设置为0或1,python,list,list-comprehension,Python,List,List Comprehension,我一直在尝试用一行列表来理解以下内容:给定一个整数数组和一个整数,将其称为int1,我想创建一个只包含0和1的新数组,这样,如果原始数组中的该位置有一个int1,那么新数组就有一个1 有没有办法让真/假像在C中一样为1/0 array1 = [1,4,2,4,5,6,4,3] array2 = [x == 4 for x in array1 ] => [False, True, False, True, False, False, True, False] 使用条件表达式1,否则0或其他

我一直在尝试用一行列表来理解以下内容:给定一个整数数组和一个整数,将其称为int1,我想创建一个只包含0和1的新数组,这样,如果原始数组中的该位置有一个int1,那么新数组就有一个1

有没有办法让真/假像在C中一样为1/0

array1 = [1,4,2,4,5,6,4,3]
array2 = [x == 4 for x in array1 ]
=> [False, True, False, True, False, False, True, False]

使用条件表达式<如果x==4,则代码>1,否则0或其他任何值。

只需将布尔值转换为
int
,函数如下

array2 = [int(x == 4) for x in array1]
输出

[0, 1, 0, 1, 0, 0, 1, 0]

这是因为,在Python中,.

True
False
已经按照您希望的方式转换为
int
。直接将它们转换为
int

>>> [int(t) for t in (True, True, False)]
[1, 1, 0]

array2=[1如果x==4,则数组中的x为0]请按照@MrWardo的建议更正您的答案