用python制作索引

用python制作索引,python,Python,以下是我的问题: data = ['a1_1 00000001\n', 'a1_2 00000002\n', 'a1_3 00000003\n', 'b1_1 00000004\n', 'b1_2 00000005\n', 'b1_3 00000006'] candidate = ['a', 'b'] for i in candidate: for j in data: if i in j.split()[0]: print i

以下是我的问题:

data = ['a1_1 00000001\n', 'a1_2 00000002\n', 'a1_3 00000003\n',
        'b1_1 00000004\n', 'b1_2 00000005\n', 'b1_3 00000006']

candidate = ['a', 'b']

for i in candidate:
    for j in data:
        if i in j.split()[0]:
            print i, j.split()[1]

a 00000001
a 00000002
a 00000003
b 00000004
b 00000005
b 00000006
但我想做的是使结果如下:

a 00000001, 00000002, 00000003
b 00000004, 00000005, 00000006
我如何解决这个问题? 提前谢谢

data = ['a1_1 00000001\n', 'a1_2 00000002\n', 'a1_3 00000003\n', 'b1_1 00000004\n', 'b1_2 00000005\n', 'b1_3 00000006']

candidate = ['a', 'b']


for i in candidate:
    print i, ', '.join(v for k,v in (a.split() for a in data) if k.startswith(i))
印刷品:

a 00000001, 00000002, 00000003
b 00000004, 00000005, 00000006
但是,这将对
数据
进行多次检查(每个
候选人一次)。要仅执行一次,您需要一个中介字典:

d = {}
for a in data:
    d.setdefault(a[0], []).append(a.split()[1])
for k,v in sorted(d.iteritems()):
    print k, ', '.join(v)
印刷品:

a 00000001, 00000002, 00000003
b 00000004, 00000005, 00000006
但是,这将对
数据
进行多次检查(每个
候选人一次)。要仅执行一次,您需要一个中介字典:

d = {}
for a in data:
    d.setdefault(a[0], []).append(a.split()[1])
for k,v in sorted(d.iteritems()):
    print k, ', '.join(v)

一种方法是将中间结果存储在变量中,然后在循环外部打印出来

例如,类似(未测试):


一种方法是将中间结果存储在变量中,然后在循环外部打印出来

例如,类似(未测试):