如何在子列表中检测逻辑和字符串索引并将其删除

时间:2018-11-10 18:12:33

标签: python python-3.x algorithm list types

我有一个这样的列表:

A = [[1,2,3,4],[1,1,2,4],[1,2,3,False],[1,False,2,3],[1,2,3,4],[1,2,3,'word'],[5,6,7,8],[1,4,3,4],[True,1,2,4],[0,1,0,1],[0,0,0,0],[False,False,False,False]]

并且我想要这样的列表作为输出:

A = [[1,2,3,4],[1,1,2,4],[1,2,3,4],[5,6,7,8],[1,4,3,4],[0,1,0,1],[0,0,0,0]]

我只想删除或删除任何列表。它具有字符串或逻辑成员。 我该怎么做。

1 个答案:

答案 0 :(得分:5)

我们可以使用列表理解来做到这一点,其中我们使用any(..)执行过滤器,以检查是否有元素是strbool的实例:

[sublist for sublist in A if not any(isinstance(e, (str, bool)) for e in sublist)]

然后产生:

>>> [sublist for sublist in A if not any(isinstance(e, (str, bool)) for e in sublist)]
[[1, 2, 3, 4], [1, 1, 2, 4], [1, 2, 3, 4], [5, 6, 7, 8], [1, 4, 3, 4], [0, 1, 0, 1], [0, 0, 0, 0]]