如何从输入打印字典?

问题描述 投票:0回答:4

我学习 Python 才几周,所以请多多包涵。

我创建了一套词典,我希望用户能够搜索其中一个的名字(通过

Input
)然后
Print
整个词典。

我可以看到问题出在哪里,当我输入

Input
时,它将它分配给它自己的变量,然后将其调用给
Print
...有什么方法可以获取值并显示字典那个变量名?

DICT001 = {
     'MAP' : 'XXXX',
     'SSC'   : '0333',
     'Method': 'R',
     'Code1': 'S093733736',
     'Reg ID'  : '01'
}

DICT002 = {
     'MAP' : 'XXXX',
     'SSC'   : '0333',
     'Method': 'H',
     'Code1': 'B19SN99854',
     'Reg ID'  : 'S'
}

Search = input("Enter Dictionary to Search:")

print (Search)

我完全理解为什么上面的代码根本不起作用,它只是打印我创建的搜索变量......但是我似乎无法在任何地方找到任何解决方法。

任何帮助将不胜感激!

python dictionary variables
4个回答
2
投票

简答:

c = "DICT001"
tmp_dict = globals().get(c, None)
print(tmp_dict if tmp_dict else "There's no variable \"{}\"".format(c))

扩展答案:

是的,很少有方法可以通过字符串名称获取变量的值,但通常需要它的事实是错误代码的标记。

存储数据的常规方式是嵌套字典.

例子:

dictionaries = {
    "DICT001": {
         'MAP' : 'XXXX',
         'SSC'   : '0333',
         'Method': 'R',
         'Code1': 'S093733736',
         'Reg ID'  : '01'
    },
    "DICT002": {
         'MAP' : 'XXXX',
         'SSC'   : '0333',
         'Method': 'H',
         'Code1': 'B19SN99854',
         'Reg ID'  : 'S'
    }
}

它可以让你避免搜索变量。你只需要通过字典中的键来获取值。

代码:

c = "DICT001"
tmp_dict = dictionaries.get(c, None)
print(tmp_dict if tmp_dict else "There's no key \"{}\"".format(c))

0
投票

globals()
locals()
是分别包含所有
globally
locally
定义变量的字典。您可以将它们中的任何一个用于您的用例。

例子:

globals()['DICT001']

或者如果字典不存在,为避免错误,请执行以下操作:

globals().get('DICT001', None)

0
投票

或者更好的做法是创建一个父字典,

parent_dict = {
      'DICT001' = {
     'MAP' : 'XXXX',
     'SSC'   : '0333',
     'Method': 'R',
     'Code1': 'S093733736',
     'Reg ID'  : '01'
      },
      'DICT002' = {
     'MAP' : 'XXXX',
     'SSC'   : '0333',
     'Method': 'H',
     'Code1': 'B19SN99854',
     'Reg ID'  : 'S'
 }
}

search = input("Enter Dictionary to Search:")
if search in parent_dict:  
   print(f'here\'s you dict {parent_dict[search]}')
else:
   print('child dictionary not found')

0
投票

看来你想让你的字典separated,我建议你这样,我试过了,我很高兴!我写的这段代码从用户那里获取字典的名称并打印相应的字典。 我建议你制作另一本字典,这样它就只有你的变量名(你的字典):

dict1 = {#some informations}
dict2 = {#some informations}
dict3 = {#some informations}
dict4 = {#some informations}

现在我建立dictionry_collection:

dictionary_collection = {
    "dict1" : dict1, #the first one is the key and second is value(the made dictionaries)
    "dict2" : dict2,
    "dict3" : dict3,
    "dict4" : dict4
}

现在我可以让用户选择字符串:

user_choice = input("Enter the name of dictionary you want to print: ").lower()

chosen_dict = dictionary_collection.get(user_choice, "Dictionary NOT Found!!")

print(chosen_dict)

注意:get() 方法是一种字典方法,它检索与给定键关联的值。在此示例中,它从 dictionary_collection 中检索 user_choice 的值并将其放入 chosen_dict。 您可以这样做以更好地理解它:

print(type(chosen_dict))
© www.soinside.com 2019 - 2024. All rights reserved.