首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将额外的信息添加到zip中

将额外的信息添加到zip中
EN

Stack Overflow用户
提问于 2012-10-17 21:53:39
回答 1查看 47关注 0票数 0
代码语言:javascript
运行
复制
from itertools import groupby
#input
l = [['Cautus  B.V.', 'plein 92', '1129008', '10', 'AVB', 'Geachte mevrouw Daa', 'Mevrouw C.P. Daa'] ,
['Cautus  B.V.', 'Wei 9-11', '1019123', '10', 'AVB', 'Geachte mevrouw Daa', 'Mevrouw C.P. Daa'] ,
['Cautus  B.V.', 'plein 92', '1129008', '10', 'BEDR', 'Geachte mevrouw Daa', 'Mevrouw C.P. Daa'] ,
['Cautus  B.V.', 'Wei 9-11', '1019123', '10', 'BEDR', 'Geachte mevrouw Daa', 'Mevrouw C.P. Daa'] ,
['De company', 'tiellaan 42', 'KD0022232', '13', 'AVB', 'Geachte heer Tigch', 'De heer I. Tigch'] ,
['De company', 'tiellaan 42', 'KD0022232', '13', 'DAS', 'Geachte heer Tigch', 'De heer I. Tigch'] ,
['Slever ', 'klopt 42', 'KD2220115', '17', 'AVB', 'Geachte heer Slever', 'De heer T. Slever']]
#script
l_clean = sorted(zip(zip(*l)[1], zip(*l)[4],))

l_final = [(k, zip(*v)[1]) for k,v in groupby(l_clean, key = lambda x:x[0])]

for k,v in l_final:

     print k,list(v)

#My output is:

Wei 9-11 ['AVB', 'BEDR']

klopt 42 ['AVB']

plein 92 ['AVB', 'BEDR']

tiellaan 42 ['AVB', 'DAS']

问题

我的问题是,我似乎不能将其他数据添加到输出中,我也希望在输出中包含的数据是:

代码语言:javascript
运行
复制
['Cautus  B.V.','1019123', '10', 'Geachte mevrouw Daa', 'Mevrouw C.P. Daa'](not only for this entry but for all entry's)

我尝试了一切改变/添加密钥等,但它似乎不起作用。我知道我的英语含糊不清,所以如果我需要澄清一些单词或任何事情,尽管说出来。已经提前准备好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-17 22:10:19

我很难理解你想要做什么,但也许这会有所帮助:

代码语言:javascript
运行
复制
from itertools import groupby
import operator
#input
l = [['Cautus  B.V.', 'plein 92', '1129008', '10', 'AVB', 'Geachte mevrouw Daa', 'Mevrouw C.P. Daa'] ,
['Cautus  B.V.', 'Wei 9-11', '1019123', '10', 'AVB', 'Geachte mevrouw Daa', 'Mevrouw C.P. Daa'] ,
['Cautus  B.V.', 'plein 92', '1129008', '10', 'BEDR', 'Geachte mevrouw Daa', 'Mevrouw C.P. Daa'] ,
['Cautus  B.V.', 'Wei 9-11', '1019123', '10', 'BEDR', 'Geachte mevrouw Daa', 'Mevrouw C.P. Daa'] ,
['De company', 'tiellaan 42', 'KD0022232', '13', 'AVB', 'Geachte heer Tigch', 'De heer I. Tigch'] ,
['De company', 'tiellaan 42', 'KD0022232', '13', 'DAS', 'Geachte heer Tigch', 'De heer I. Tigch'] ,
['Slever ', 'klopt 42', 'KD2220115', '17', 'AVB', 'Geachte heer Slever', 'De heer T. Slever']]
#script
sortkey = operator.itemgetter(1,4)
l_clean = sorted(l,key=sortkey)

l_final = [(k, list(v)) for k,v in groupby(l_clean, key = operator.itemgetter(1))]

for k,v in l_final:
   info_rest = v[0][:4]+v[0][5:]
   info_combine = map(operator.itemgetter(4),v) 
   print k,info_combine,info_rest

基本上,我根据一个特定的键对所有数据进行了排序。这样,在排序阶段不会丢失任何数据。然后,我更改了groupby中的键,使其与新的数据布局一致,并打印出结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12935951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档