Python中如何移除列表内所有元素相同的子列表(无需指定位置)
Python移除列表中所有元素均相同的子列表
直接用列表推导式就能一次性处理所有符合条件的子列表,不用手动指定位置,比你示例里的remove方法更通用。
思路很简单:筛选出子列表内元素不全相同的项就行。因为你的子元素是列表(比如[3]),没法直接转集合判断,所以可以检查子列表里的每个元素是否都和第一个元素相等——如果全相等,就把这个子列表排除。
实现代码
A = [[[1],[2],[2]],[[3],[3],[3]],[[4],[5],[4]]] # 筛选保留元素不全相同的子列表 A = [sublist for sublist in A if not all(item == sublist[0] for item in sublist)] print(A)
输出结果
[[[1], [2], [2]], [[4], [5], [4]]]
和你示例里手动移除指定位置的方法不同,这个写法能自动识别并移除列表中所有元素全相同的子列表,不管它们在什么位置。比如如果原列表里有多个符合条件的子列表,也能一次性处理干净。
内容的提问来源于stack exchange,提问作者user19977266
相关产品推荐
相关产品推荐

