我一起加入了两个表,我喜欢做的是在一个记录中连接多个vaule而没有重复的值。
输入表
表名:TAXLOT_ZONE
TID ZONE
1 A
1 A
1 B
1 C
2 D
2 D
2 E
3 A
3 B
4 C
5 D
理想的输出表如下;
表名:Taxlot_zone_out
TID ZONE
1 A,B,C
2 D,E
3 A,B
4 C
5 D
答案 0 :(得分:1)
假设您的表处于排序顺序且可迭代,您可以使用itertools.groupby
对具有相同第一个元素的行进行分组。
l = [(1, 'A'), (1, 'A'), (1, 'B'), (1, 'C'),
(2, 'D'), (2, 'D'), (2, 'E'),
(3, 'A'), (3, 'B'),
(4, 'C'),
(5, 'D')]
from itertools import groupby
from operator import itemgetter
result = [(taxlot, list(set(v for k,v in g)))
for taxlot, g in groupby(l, itemgetter(0))]
结果:
[(1, ['A', 'C', 'B']),
(2, ['E', 'D']),
(3, ['A', 'B']),
(4, ['C']),
(5, ['D'])]