0
我将两个表连接在一起,我喜欢将多个值连接在一个记录中,而没有重复的值。将多个值连接成一个记录
输入表
表名:TAXLOT_ZONE
TID ZONE
1的
1的
1乙
图1C
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℃
5 d
我将两个表连接在一起,我喜欢将多个值连接在一个记录中,而没有重复的值。将多个值连接成一个记录
输入表
表名:TAXLOT_ZONE
TID ZONE
1的
1的
1乙
图1C
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℃
5 d
假设你的表按排序顺序并且可迭代,您可以使用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'])]
有没有这样的事情在纯Python “表”。你在使用数据库吗?如果是这样,什么样的界面? SQL?如果是这样,请参阅http://stackoverflow.com/questions/2451026/minimizing-sql-queries-using-join-with-one-to-many-relationship/2451065#2451065 – 2010-03-16 22:27:15
我使用创建的文件地理数据库或dbf格式由ESRI,GIS公司。我只是想从这个连接表中创建一个新表。 – user295216 2010-03-16 22:37:37