Получить значения словаря для каждого ключа в списке - PullRequest
5 голосов
/ 17 марта 2010

Допустим, у меня есть список:

a = ['apple', 'carrot']

и словарь:

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

Как использовать список a в качестве ключа для поиска в словаре d ? Я хочу, чтобы результат был записан в текстовый файл, разделенный запятыми, например

apple,    carrot
2,        44
4,        33

Исправлен список a с a = ['apple', 'orange'] до a = ['apple', 'carrot']

Ответы [ 3 ]

8 голосов
/ 17 марта 2010
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
3 голосов
/ 17 марта 2010

Я знаю, что другие люди были быстрее и их решения похожи, но вот мое мнение (принять или оставить):

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
1 голос
/ 22 ноября 2012

Вопрос очень старый, но для будущих посетителей я бы предложил использовать списочные выражения , чтобы получить значения dict d для ключей k в списке а

values = [ d[k] for k in a ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...