我怎样才能删除所有这些 'False' 布尔值
How can I remove all these 'False' Boolean
如何从我的列表中删除所有 'False' 布尔值?
我将 csv 图表的值转换为布尔值,然后使用此函数转换为列表:
new_list=list1.values.tolist()
但是我怎样才能删除所有 'False' 和“0”并只显示所有 'True' 和“1”值?
new_list:
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, True, True],
[1, 0, 0, 0, 0, 0, True, False, False, True, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, True, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[1, 0, 0, 0, 0, 0, True, False, True, True, False, True, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
列表理解法
假设您正在显示上面的列表列表,您可以使用列表理解:
# lol is a your lists shown above stored in one list
new_lol = [[x for x in l if x in (1, True)] for l in lol]
for l in new_lol:
print(l)
您可以像这样使用简单的列表理解:
a = [1, 0, 0, 0, 0, 0, True, False, False, True, False, False, True]
b = [ x for x in a if x]
这将只留下计算结果为 'True' 的值(布尔值 true)、任何不为 0 的整数和任何非空字符串。
如果你有一个列表列表,你可以像这样嵌套它们:
new_list = [
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, True, True],
[1, 0, 0, 0, 0, 0, True, False, False, True, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, True, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[1, 0, 0, 0, 0, 0, True, False, True, True, False, True, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True]]
clean_list = [[x for x in y if x] for y in new_list ]
如何从我的列表中删除所有 'False' 布尔值?
我将 csv 图表的值转换为布尔值,然后使用此函数转换为列表:
new_list=list1.values.tolist()
但是我怎样才能删除所有 'False' 和“0”并只显示所有 'True' 和“1”值?
new_list:
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, True, True],
[1, 0, 0, 0, 0, 0, True, False, False, True, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, True, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[1, 0, 0, 0, 0, 0, True, False, True, True, False, True, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
列表理解法
假设您正在显示上面的列表列表,您可以使用列表理解:
# lol is a your lists shown above stored in one list
new_lol = [[x for x in l if x in (1, True)] for l in lol]
for l in new_lol:
print(l)
您可以像这样使用简单的列表理解:
a = [1, 0, 0, 0, 0, 0, True, False, False, True, False, False, True]
b = [ x for x in a if x]
这将只留下计算结果为 'True' 的值(布尔值 true)、任何不为 0 的整数和任何非空字符串。
如果你有一个列表列表,你可以像这样嵌套它们:
new_list = [
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, True, True],
[1, 0, 0, 0, 0, 0, True, False, False, True, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, True, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True],
[1, 0, 0, 0, 0, 0, True, False, True, True, False, True, True],
[0, 0, 0, 0, 0, 0, True, False, False, False, False, False, True]]
clean_list = [[x for x in y if x] for y in new_list ]