有没有一种方法可以根据输入仅在all_lists中打印字典?

时间:2020-10-12 19:11:09

标签: python python-3.x

我正在定义一个词典列表,我只需要根据我在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'}

1 个答案:

答案 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两次,这是不必要的。