1
我有以下长的巨蟒truple集团蟒蛇元组
('user1', 'data1', 'name1'), ('user2', 'data1', 'name1'), ('user1', 'data2', 'name2'), ('user2', 'data2', 'name2') etc..
我想组truple如下
('user1', 'data1', 'name1', name2), ('user2', 'data1', 'name1', name2) etc..
有没有人知道该怎么做..迄今我有
things = [('user1', 'data1', 'name1'), ('user2', 'data1', 'name1'), ('user1', 'data2', 'name2'), ('user2', 'data2', 'name2')]
things = sorted(things, key=lambda tup: tup[0])
for key, group in groupby(things, lambda x: x[0]):
print key
for thing in group:
print (key, thing[1], things[2])
print " "
,输出
user1
('user1', 'data1', ('user2', 'data1', 'name1'))
('user1', 'data2', ('user2', 'data1', 'name1'))
user2
('user2', 'data1', ('user2', 'data1', 'name1'))
('user2', 'data2', ('user2', 'data1', 'name1'))
尽管如此,这并不组第三项“姓名”正确...
语法错误?也许你想'print(key,thing [1],thing [2])''。另外,为了明确,你可以在代码的顶部插入'from itertools import groupby'。 – wildwilhelm
如果要按元组的第一个元素进行分组,为什么'data2'不出现在以user1开头的结果元组中?这是否满足? – Hyperboreus
'print(key,thing [1],things [2])'不能被'print thing'替换? – WolframH