我正在定义一个词典列表,我只需要根据我在check_if_in_list
中的输入来打印一个词典即可。
first_list = {'a':'1','b':'2'}
second_list = {'a':'10','b':'20'}
all_lists =[first_list, second_list]
for element in all_lists:
check_if_in_list = input('give a valid number')
if check_if_in_list = (item['a'] for item in all_lists):
我需要类似的东西
print(element where item['a]=check_if_in_list)
例如,如果我在check_if_in_list
的输入中输入“ 1”,则打印应为:
{'a':'1','b':'2'}
答案 0 :(得分:2)
这将为您提供所需的输出。如果我正确地理解了您的要求,它实际上比您发布的(我认为)半伪代码要简单得多。
first_dict = {'a':'1','b':'2'}
second_dict = {'a':'10','b':'20'}
all_dicts =[first_dict, second_dict]
check_if_in_list = input('give a valid number')
for element in all_lists:
if check_if_in_list == element['a']:
print(element)
如果您需要它作为一种理解,这将起作用:
print(*[element for element in all_lists if element['a'] == check_if_in_list])
这利用star-unpacking返回要打印的列表的值,该值应该是字典,或者在您的情况下为空。 (感谢@HampusLarsson的提醒。)
如果您使用的是原始代码,则将遍历all_lists两次,这是不必要的。