我怎样才能删除所有这些 '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 ]