Python操作list列表合并

需求就是在操作一个list的数据集的时候,需要将其中的所有的元素的第一位数据合并,再合并第二位数据

如果是存在A 和A-B就都统一为A-B

统一了之后,再顺便将每一个list中的第二位元素合并相加

# *===================================*
# -*- coding: utf-8 -*-
# * Time : 2019-11-10 22:06
# * Author : zhangsf
# *===================================*
#将两部分的list数据汇总key相同的部分合并一下,保证最终导入到Excel表中的key唯一
def MergeData(data):
    for item in data:
        # print(item[0], item[1])
        for tmp in data:
            if item[0].__contains__(tmp[0]) or tmp[0].__contains__(item[0]):
                if len(item[0]) >= len(tmp[0]):
                    tmp[0] = item[0]
                else:
                    item[0] = tmp[0]
    print("******************************")
    for i in data:
        print(i)
    print("******************************")
    empty_dict = dict()
    for d in data:
        print(d[0])
        a=list(d[1])
        #判断字典中是否存在key存在就更新value,否则添加k-v
        if(empty_dict.__contains__(d[0])):
            empty_dict[d[0]][0] = empty_dict[d[0]][0] +a[0]
            empty_dict[d[0]][1] = empty_dict[d[0]][1] + a[1]
            empty_dict[d[0]][2] = empty_dict[d[0]][2] + a[2]
            empty_dict[d[0]][3] = empty_dict[d[0]][3] + a[3]
            empty_dict[d[0]][4] = empty_dict[d[0]][4] + a[4]
        else:
            empty_dict[d[0]]=list(d[1])
    print("遍历字典")
    print(empty_dict)
data1=['key1',(1,0,0,1,0)]
data2=['key2-value',(0,1,0,0,1)]
data3=['key2',(1,0,0,0,0)]
data4=['key1',(0,1,0,0,1)]
data5=['key1-zhang',(0,1,0,0,1)]
data=[data1,data2,data3,data4,data5]
#变换之前的data
print("变换之前的data")
print("******************************")
for i in data:
    print(i)
print("******************************")
#变换之后的data
print("变换之后的data")
MergeData(data)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值