Словарь ключей соответствует по списку; получить пару ключ / значение

В python … У меня есть список элементов 'my_list' и словарь 'my_dict', где некоторые ключи совпадают в 'my_list'.

Я хотел бы найти словарь и получить пары ключ / значение для ключей, соответствующих элементам «my_list».

Я пробовал это …

if any(x in my_dict for x in my_list): print set(my_list)&set(my_dict) 

Но это не делает работу.

5 Solutions collect form web for “Словарь ключей соответствует по списку; получить пару ключ / значение”

(Я переименовал list в my_list и my_dict чтобы избежать конфликта с именами типов.)

Для лучшей производительности вы должны перебирать список и проверять членство в словаре:

 for k in my_list: if k in my_dict: print k, my_dict[k] 

Если вы хотите создать новый словарь из этих пар ключ-значение, используйте

 new_dict = {k: my_dict[k] for k in my_list if k in my_dict} 

Не используйте dict и list как имена переменных. Они скрывают встроенные функции. Предполагая список l и словарь d :

 kv = [(k, d[k]) for k in l if k in d] 
  new_dict = dict((k, v) for k, v in dict.iteritems() if k in list) 

Переключение списка в set(list) может привести к заметному увеличению скорости

Что относительно print([kv for kv in dict.items() if kv[0] in list])

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

 mydict = {'one': 1, 'two': 2, 'three': 3} mykeys = ['three', 'one','ten'] newList={k:mydict[k] for k in mykeys if k in mydict} print newList {'three': 3, 'one': 1} 
  • Конкатенация многих списков в Python
  • Извлечь список атрибутов из списка объектов в python
  • проблема компиляции при запуске theano
  • Как отсортировать список с положительными значениями перед негативами со значениями, отсортированными соответственно?
  • Расширенный срез, который начинается с начала последовательности с отрицательным шагом
  • удалить значение None из списка без удаления значения 0
  • На месте способа применить перестановку к списку? (инвертирует сортировку по ключу)
  • Самый эффективный способ поиска в списке dicts
  • Python - лучший язык программирования в мире.