В Python иногда нам требуется получить только некоторые ключи словаря, а не все. Эта проблема довольно распространена в веб-разработке, когда нам требуется получить только выборочные ключи словаря из некоторого заданного списка. Давайте обсудим некоторые способы, с помощью которых эта проблема может быть решена.
Метод № 1 : Использование понимания списка
Понимание списка может быть использовано для решения этой конкретной проблемы. Это просто сокращенный способ его выполнения вместо написания цикла.
# Python3 code to demonstrate
# getting selective dictionary keys
# using list comprehension
# initializing dictionary
test_dict = {"Akash" : 1, "Akshat" : 2, "Nikhil" : 3, "Manjeet" : 4}
# initializing selective list keys
select_list = ['Manjeet', 'Nikhil']
# printing original dictionary
print ("The original dictionary is : " + str(test_dict))
# printing selective list
print ("The selective list is : " + str(select_list))
# using list comprehension
# getting selective dictionary keys
res = [test_dict[i] for i in select_list if i in test_dict]
# printing result
print ("The selected values from list keys is : " + str(res))
Выход:
Исходный словарь : {‘Nikhil’: 3, ‘Akshat’: 2, ‘Manjeet’: 4, ‘Akash’: 1}
Выборочный список : [‘Manjeet’, ‘Nikhil’]
Выбранные значения из ключей списка : [4, 3]
Способ № 2 : Использование set.intersection()
Это самый элегантный метод, с помощью которого можно выполнить эту задачу. Свойство пересечения множеств может давать общие ключи, которые можно извлечь, а затем вычислить значения.
# Python3 code to demonstrate
# getting selective dictionary keys
# using set.intersection()
# initializing dictionary
test_dict = {"Akash" : 1, "Akshat" : 2, "Nikhil" : 3, "Manjeet" : 4}
# initializing selective list keys
select_list = ['Manjeet', 'Nikhil']
# printing original dictionary
print ("The original dictionary is : " + str(test_dict))
# printing selective list
print ("The selective list is : " + str(select_list))
# using set.intersection()
# getting selective dictionary keys
temp = list(set(select_list).intersection(test_dict))
res = [test_dict[i] for i in temp]
# printing result
print ("The selected values from list keys is : " + str(res))
Выход:
Исходный словарь : {‘Akshat’: 2, ‘Manjeet’: 4, ‘Nikhil’: 3, ‘Akash’: 1}
Выборочный список : [‘Manjeet’, ‘Nikhil’]
Выбранные значения из ключей списка : [4, 3]