首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Python中的列表中删除包含相同元素的列表

从Python中的列表中删除包含相同元素的列表
EN

Stack Overflow用户
提问于 2022-09-12 15:29:08
回答 2查看 39关注 0票数 0

是否有一种直接的方法可以删除包含所有相同元素的列表,而不是指定实际位置?例如,必须删除A[1],因为所有元素都是相同的?

代码语言:javascript
复制
A=[[[1],[2],[2]],[[3],[3],[3]],[[4],[5],[4]]]
print(A)

A.remove(A[1])
print(A)

输出是而且应该是

代码语言:javascript
复制
[[[1],[2],[2]],[[4],[5],[4]]]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-12 15:31:19

我们可以在这里使用列表理解:

代码语言:javascript
复制
A = [[[1],[2],[2]],[[3],[3],[3]],[[4],[5],[4]]]
output = [x for x in A if min(x) != max(x)]
print(output)  # [[[1], [2], [2]], [[4], [5], [4]]]

通过检查min和max值是否相同,我们可以将子列表识别为被删除的候选列表。如果这两个值不相同,则保留子列表。

票数 1
EN

Stack Overflow用户

发布于 2022-09-12 15:42:20

您可以使用list.count方法计算列表中相等项的数目。考虑到A的所有元素不可能是空的,您可以这样过滤它们。

代码语言:javascript
复制
filtered = [el for el in A if el.count(el[0]) != len(el)]

或者,为了确保代码不会对空项抛出IndexError,可以检查项的长度。

代码语言:javascript
复制
filtered = [el for el in A if len(el) and el.count(el[0]) != len(el)]

这种方法也适用于字符串和其他类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73691657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档