我不知道我在这里做错了什么,但我一直得到一个关键错误,无法弄清楚为什么,我错过了什么?
campers = {'pb' : 'Pooder Bennet', 'jf' : 'Jupiter Fargo',
'rb' : 'Randy Buffet', 'bl' : 'Botany Lynn',
'bt' : 'Boris Tortavich', 'tn' : 'Trinda Noober',
'fj' : 'Freetus Jaunders', 'nt' : 'Ninar Tetris',
'gm' : 'Gloobin Marfo', 'nk' : 'Niche Kaguya',
'bd' : 'Brent Drago', 'vt' : 'Volga Toober',
'kt' : 'Kinser Talebearing', 'br' : 'Bnola Rae',
'nb' : 'Nugget Beano', 'yk' : 'Yeldstat Krong',
'gy' : 'Gelliot Yabelor', 'il' : 'Illetia Dorfson',
'ct' : 'Can Tabber', 'tv' : 'Trinoba Vyder'}
campers_outside_theater = random.sample(campers.keys(), 5)
people = campers_outside_theater + ['Troid, the counselor from the bus.']
choices = '\n\n'.join('%d. %s' % (i + 1, campers[p]) for (i, p) in enumerate(people))
答案 0 :(得分:2)
这将为您提供您想要的东西:
import random
campers = {'pb' : 'Pooder Bennet', 'jf' : 'Jupiter Fargo',
'rb' : 'Randy Buffet', 'bl' : 'Botany Lynn',
'bt' : 'Boris Tortavich', 'tn' : 'Trinda Noober',
'fj' : 'Freetus Jaunders', 'nt' : 'Ninar Tetris',
'gm' : 'Gloobin Marfo', 'nk' : 'Niche Kaguya',
'bd' : 'Brent Drago', 'vt' : 'Volga Toober',
'kt' : 'Kinser Talebearing', 'br' : 'Bnola Rae',
'nb' : 'Nugget Beano', 'yk' : 'Yeldstat Krong',
'gy' : 'Gelliot Yabelor', 'il' : 'Illetia Dorfson',
'ct' : 'Can Tabber', 'tv' : 'Trinoba Vyder'}
campers_outside_theater = random.sample(campers.keys(), 5)
people = campers_outside_theater #+ ['Troid, the counselor from the bus.']
choices = '\n\n'.join('%d. %s' % (i + 1, campers[p]) for (i, p) in enumerate(people))
print(choices)
你有keys(people)
,但没有这样的动物 - 这是你的第一个错误。它不是KeyError
,而是NameError
(因为keys
从未定义过)。然后,当我删除密钥并且只有enumerate(people)
时,您遇到了一个实际的密钥错误,因为您尝试使用'Troid, the counselor from the bus.'
作为密钥...但它不是一个。我假设你想把他包括在公交车上的人身上,但你必须以不同的方式做到这一点。也许将他包括在你的露营者词典中,并且在你随机取样之后总是把他加到你的钥匙上。
答案 1 :(得分:1)
此行是导致错误的原因:
choices = '\n\n'.join('%d. %s' % (i + 1, campers[p]) for (i, p) in enumerate(people))
原因在于这一行:
people = campers_outside_theater + ['Troid, the counselor from the bus.']
字典campers
中没有名为Troid, the counselor from the bus.
解决此问题:
>>> campers.update([('Troid', 'the counselor from the bus.')])