需求就是在操作一个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)