使用原始输入访问字典

时间:2012-08-14 19:00:00

标签: python loops if-statement dictionary raw-input

我正在尝试让用户输入1,2,3,4,5,6。 然后让该整数与我的字典中的字符名称对齐。

characters = {
'Stark': '1',
'Greyjoy': '2',
'California': '3',
'Whitewalkers': '4',
'Knights Watch': '5',
'Dalthraki': '6'
 }   

print 'Type 1 for Stark'
print 'Type 2 for Greyjoy'
print 'Type 3 for Lannister'
print 'Type 4 for Whitewalkers'
print 'Type 5 for Knights Watch'
print 'Type 6 for Dalthraki' 
choice = raw_input("> ")
if choice in characters:
    print 'You\'ve selected', choice 
else:
    splash()

我希望在用户输入1之后打印我的脚本“你选择了Stark”。 谢谢你的帮助

3 个答案:

答案 0 :(得分:3)

你有dict向后:

characters = {
'1': 'Stark',
'2': 'Greyjoy',
'3': 'California',
'4': 'Whitewalkers',
'5': 'Knights Watch',
'6': 'Dalthraki',
}   

print 'Type 1 for Stark'
print 'Type 2 for Greyjoy'
print 'Type 3 for Lannister'
print 'Type 4 for Whitewalkers'
print 'Type 5 for Knights Watch'
print 'Type 6 for Dalthraki' 
choice = raw_input("> ")
if choice in characters:
    print 'You\'ve selected', characters[choice] 
else:
    pass

答案 1 :(得分:1)

将你的词汇改为:

characters = {
'1':'Stark',
 '2':'Greyjoy',
'3':'California',
'4':'Whitewalkers',
'5':'Knights Watch',
'6':'Dalthraki'
 }  

并使用:

if choice in characters:
    print 'You\'ve selected {0}'.format(characters[choice])
else:
    splash()

答案 2 :(得分:0)

你无法真正使用字典。您可以反转键/值对,然后使用字符[choice]来获取字符的名称。如果你想保留字典,你最好的选择是迭代项目

characterName = None
names = characters.items()
while characterName is None and names:
    if names[0][1] == choice:
        characterName = names[0][0]
    else:
        names = names[1:]

运行此命令后,您将在characterName中拥有一个字符名称,或者如果用户输入了无效条目,则该名称将为None。