gpt4 book ai didi

python - 在元组列表中查找重复元素

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:36 26 4
gpt4 key购买 nike

在元组列表中,如果第一个和最后一个元素与其他元组匹配,则添加第二个元素。

    p =[(u'basic', 7698, '01-2017'),
(u'basic', 7685, '01-2017'),
(u'Gross', 4875.0, u'01-2017'),
(u'Gross', 4875.0, u'01-2017')]

输出应该是这样的

    [(u'basic',15383,'01-2017'),(u'Gross', 9750.0, u'01-2017')]

我正在尝试这样做

   o=[]        
for i in p:
if i[2] not in o:
o.append(i[2])
if i[0] not in o:
o.append(i[0])
count +=i[1]
o.append(count)

我的联系人:

   ['01-2017', 'basic', u'Gross', 53050.0, 4875.0]

最佳答案

您可以使用defaultdict来处理这个问题。使用元组的第一个和最后一个元素作为键,第二个作为值,通过加法累加:

from collections import defaultdict

l = [(u'basic', 7698, '01-2017'),
(u'basic', 7685, '01-2017'),
(u'Gross', 4875.0, u'01-2017'),
(u'Gross', 4875.0, u'01-2017')]

d = defaultdict(int)
for t in l:
d[(t[0], t[-1])] += t[1]

# create list of tuples from the defaultdict values
result = [(k[0], d[k], k[1]) for k in d]

>>> print(result)
[(u'basic', 15383, '01-2017'), (u'Gross', 9750.0, u'01-2017')]

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com