-1

我正在尝试让用户输入 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”。感谢您的帮助

4

3 回答 3

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
于 2012-08-14T19:04:29.563 回答
1

将您的 dict 更改为:

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()
于 2012-08-14T19:03:01.407 回答
0

你真的不能那样使用字典。您可以反转键/值对,然后使用 characters[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。

于 2012-08-14T19:11:07.810 回答