python 在列表列表中查找重复列表

标签 python list

我正在使用 python 2.7,我试图根据两个值在列表列表中查找重复列表。 例如

list= [[a,x,y,2], [b,xx,yy,2], [c,xxx,yyy,3],[a,yx,yx,2]]

outcome [[a,xyx,yyx,2], [b,xx,yy,2], [c,xxx,yyy,3]]

因此根据值 a 和 2,加入其他值

有什么建议吗?

谢谢 最好的问候

最佳答案

如果顺序不重要,我想你可以使用字典:

from operator import itemgetter
getter = itemgetter(0,-1)

def merge(lst1,lst2):
    return [lst1[0],lst1[1]+lst2[1],lst1[2]+lst2[2],lst1[3]]


d = {}
for sublist in lst:
    t = getter(sublist)
    if t not in d:
       d[t] = sublist
    else:
       d[t] = merge(sublist,d[t])

print d.values()

如果顺序很重要,您可以使用 collections.OrderedDict 代替。

关于python 在列表列表中查找重复列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16939639/

相关文章:

python - 获取 GCP Cloud composer 上 IAM 代理的 client_id

Python:如何将日期时间添加到 pcolormesh 中的 x 轴

python - 获取 python 列表列表中的所有字符串

java - 编辑 parent 列表中的 child

c - strcmp() 来自标准输入的字符串和来自文件的字符串

list - TCL中这两种声明列表的方式有什么区别?

python - 属性错误: module 'selenium.webdriver' has no attribute 'webdriver'

jquery - 我如何从 jquery ajax 向 Flask View 发送 POST 请求?

python - 图像中的方形检测

java - 如何将多个对象实例化到列表中?