如何在python中将变量设置为字典?

2024-04-28 08:53:41 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一本字典(你不需要理解它说什么来回答问题):

Long_Swordsmenc={'as': 4, 'ar': 5, 'de': 2, 'co': 2, 'asr': 7, 'he': 10, 'wm': 1, 'am': 1}

接下来,我要求用户选择一个单位:

x1=raw_input('Player 1, enter your unit: ')

然后,当用户输入“Long\u剑门”时,x1将等于“Long\u剑门”。 键入时:

Print x1

我要弹出这个:

{'as': 4, 'ar': 5, 'de': 2, 'co': 2, 'asr': 7, 'he': 10, 'wm': 1, 'am': 1}


Tags: 用户raw字典as单位deasram
3条回答

您可能需要一个字典字典,而不是仅仅存储变量Long_Swordsmenc。所以:

weapons = {}
weapons['Long_Swordsmenc'] = {'as': 4, 'ar': 5, 'de': 2, 'co': 2, 'asr': 7, 'he': 10, 'wm': 1, 'am': 1}

x1=raw_input('Player 1, enter your unit: ')

然后:

>>> print weapons[x1]
{'as': 4, 'ar': 5, 'de': 2, 'co': 2, 'asr': 7, 'he': 10, 'wm': 1, 'am': 1}

您也可以访问globals(),但最好的做法是限制dict的键(可能更安全)

注意:最好的方法是像其他答案所建议的那样使用字典。然而,这里是实际做你所要求的。你知道吗

如果您没有像其他答案所建议的那样将Long_Swordsmenc变量放入字典中,则必须执行以下操作:

import sys

module = sys.modules[__name__]

Long_Swordsmenc = {'as': 4, 'ar': 5, 'de': 2, 'co': 2, 'asr': 7, 'he': 10, 'wm': 1, 'am': 1}

x1 = raw_input('Player 1, enter your unit: ')
unit1 = getattr(module, x1)

print(unit1)

印刷品:

{'as': 4, 'ar': 5, 'de': 2, 'co': 2, 'asr': 7, 'he': 10, 'wm': 1, 'am': 1}

编辑:一个更简单的方法是使用globals()[x1],比如@martineau和@mhlester。更多信息请参见下面的评论。你知道吗

最好的方法是使用嵌套字典,其中'Long_Swordsmenc'是键之一。例如:

units = {'Long_Swordsmenc': {'as': 4, 'ar': 5, 'de': 2, 'co': 2,
                             'asr': 7, 'he': 10, 'wm': 1, 'am': 1}}
x1 = raw_input('Player 1, enter your unit: ')
print units[x1]

相关问题 更多 >