Python: как добавить значение в dict к списку, если значение найдено в другом списке - PullRequest
2 голосов
/ 29 января 2012

Пример:

list1 =['a','b','c','d']
new_list = []
dict = {'a':24, 'b':53 ,'c':26, 'd':9}

Как мне взять list1 и добавить соответствующие значения dict в new_list, чтобы получить это:

new_list = [24,53,26,9]

Ответы [ 5 ]

10 голосов
/ 29 января 2012

Не используйте 'dict' в качестве имени переменной, оно затеняет встроенную функцию dict ().

list1 =['a','b','c','d']
d = {'a':24, 'b':53 ,'c':26, 'd':9}
new_list = [d[k] for k in list1]
assert new_list == [24, 53, 26, 9]
3 голосов
/ 29 января 2012

Предполагая, что все элементы в list1 являются ключами в dict, это самое простое решение, которое я могу придумать:

list1 =['a','b','c','d']
new_list = []
dict = {'a':24, 'b':53 ,'c':26, 'd':9}

for it in list1:
    new_list.append(dict[it])
2 голосов
/ 29 января 2012
list1 =['a','b','c','d']
d = {'a':24, 'b':53 ,'c':26, 'd':9}
new_list = map(lambda x: d[x], list1)

или если вам действительно нужно добавить вместо замены:

new_list.extend(map(lambda x: d[x], list1))
1 голос
/ 29 января 2012

Попробуйте это:

lst = ['a','b','c','d']
dct = {'a':24, 'b':53 ,'c':26, 'd':9}
new_list = [dct[k] for k in lst]
1 голос
/ 29 января 2012

Как насчет этого?

for key in list1:
    new_list.append(dict[key])

print list1

Пример вывода:

[24, 53, 26, 9]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...