我有一个这样的列表:
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]]
我只想删除或删除任何列表。它具有字符串或逻辑成员。 我该怎么做。
答案 0 :(得分:5)
我们可以使用列表理解来做到这一点,其中我们使用any(..)
执行过滤器,以检查是否有元素是str
或bool
的实例:
[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]]