这是一本字典(你不需要理解它所说的回答问题):
Long_Swordsmenc = {'as':4,'ar':5,'de':2,'co':2,'asr':7,'他':10,'wm':1,'am am ':1}
接下来,我要求用户选择一个单位:
x1 = raw_input('玩家1,输入您的单位:')
然后,当用户输入'Long_Swordsmenc'时,x1将等于'Long_Swordsmenc'。 当我输入:
打印x1
我希望弹出这个:
{'as':4,'ar':5,'de':2,'co':2,'asr':7,'他':10,'wm':1,'am': 1}
答案 0 :(得分: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()
,但是更好的做法(也可能更安全),限制字典的键
答案 1 :(得分:2)
执行此操作的最佳方法是使用嵌套字典,其中'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]
答案 2 :(得分:1)
注意:执行此操作的最佳方法是像其他答案建议的字典。但是,这是实际做你要求的。
如果您没有像其他答案建议的那样将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建议。有关详细信息,请参阅以下评论。