试图将1/0的列表转换为布尔列表.
bool([1,0,1,0])似乎不起作用.
[1,0,1,0] == 1不起作用.
还有另一种方式(希望非列表理解)吗?
在python 2中
bool_list = map(bool,int_list)
Run Code Online (Sandbox Code Playgroud)
在python 3中:
bool_list = list(map(bool,int_list))
Run Code Online (Sandbox Code Playgroud)
使用模块的解决方案numpy:
import numpy as np
l = np.array([1,0,1,0])
print((l > 0).tolist())
Run Code Online (Sandbox Code Playgroud)
输出:
[True, False, True, False]
Run Code Online (Sandbox Code Playgroud)
l > 0- 测试数组的每个元素l,如果它大于0。这些测试的结果是结果数组的布尔元素
这种方法在处理多维数组时也相当好:
l = np.array([[1,0,1,0], [1,1,1,1], [0,0,1,0]])
print((l > 0).tolist())
Run Code Online (Sandbox Code Playgroud)
输出:
[[True, False, True, False], [True, True, True, True], [False, False, True, False]]
Run Code Online (Sandbox Code Playgroud)