获取列表中每个键的字典值

时间:2010-03-17 14:49:53

标签: python dictionary

假设我有一个清单:

a = ['apple', 'carrot']

和字典:

d ={'apple': [2,4], 'carrot': [44,33], 'orange': [345,667]}

如何使用 a 列表作为在词典 d 中查找的键?我希望将结果写入以逗号分隔的文本文件,如此

apple,    carrot
2,        44
4,        33

将a = ['apple','orange']的a-list更改为a = ['apple','carrot']

3 个答案:

答案 0 :(得分:8)

a = ['apple', 'orange']
d ={'apple': [2,4], 'carrot': [44,33], 'orange': [345,667]}

print ',\t'.join(a)
for row in zip(*(d[key] for key in a)):
    print ',\t'.join(map(str, row))

输出:

apple,  orange
2,      345
4,      667

答案 1 :(得分:3)

我知道其他人的速度更快,他们的解决方案也很相似,但这是我的看法(接受或离开):

a = ['apple', 'orange']

d ={'apple': [2,4], 'carrot': [44,33], 'orange': [345,667]}

fo = open('test.csv','w')
fo.write(',\t'.join(a)+'\n')
for y in xrange(len(d[a[0]])):
    fo.write(',\t'.join([str(d[i][y]) for i in a])+'\n')

fo.close()

生成文件test.csv:

apple,  orange
2,      345
4,      667

答案 2 :(得分:1)

问题很老,但对于将来的访问者,我建议使用list comprehensions为列表中的 k 键获取dict d 的值一个

values = [ d[k] for k in a ]