我试图从可用状态(键)中随机选择一个状态:资本(值)字典列表,然后尝试匹配字典中选择的状态以返回首都。
到目前为止我的代码:
capitals = {
'Alabama' : 'Montgomery',
'Alaska' : 'Juneau',
'Arizona' : 'Phoenix',
'Arkansas' : 'Little Rock',
'California' : 'Sacramento',
'Colorado' : 'Denver',
'Connecticut' : 'Hartford',
'Delaware' : 'Dover',
'Florida' : 'Tallahassee',
'Georgia' : 'Atlanta',
'Hawaii' : 'Honolulu',
'Idaho' : 'Boise',
'Illinois' : 'Springfield'}
name_list=list(zip(capitals.keys()))
print(name_list)
from random import *
random_state=list(choice(name_list))
print(random_state)
for key,value in capitals.items():
if random_state in key:
print(value)
我收到错误
如果选择的随机状态是科罗拉多,TypeError:' in'需要字符串作为左操作数,而不是列表
预期输出是丹佛
由于
答案 0 :(得分:2)
>>> from random import choice
>>> capitals = {
... 'Alabama': 'Montgomery',
... 'Alaska': 'Juneau',
... 'Arizona': 'Phoenix',
... 'Arkansas': 'Little Rock',
... 'California': 'Sacramento',
... 'Colorado': 'Denver',
... 'Connecticut': 'Hartford',
... 'Delaware': 'Dover',
... 'Florida': 'Tallahassee',
... 'Georgia': 'Atlanta',
... 'Hawaii': 'Honolulu',
... 'Idaho': 'Boise',
... 'Illinois': 'Springfield'
... }
>>> random_state = choice(list(capitals))
>>> capitals[random_state]
'Springfield'
答案 1 :(得分:0)
你有两个问题。
首先,您没有正确生成name_list。它应该只是:
NAME_LIST = capitals.keys()
其次,生成random_state作为列表。摆脱列表(),它应该工作:
random_state =选择(NAME_LIST)
答案 2 :(得分:0)
你所拥有的所有东西似乎都可以替换,因为你只能选择一个州。
import random
print(capitals[random.choice(list(capitals))])
由于它只是一个状态,这只是直接拉回该键的值,而不是使用for循环来查看所有键。
答案 3 :(得分:0)
您得到random_state
,因为tuple
是tuple
的一个元素,您尝试检查string
是否包含['Florida'] in 'Alabama'
的密钥。
zip
只需从代码中删除string
,您就会获得字符串列表,但现在您已经有了元组列表。您的代码会检查string
中是否包含:host /deep/ > * {
height: 100%;
}
。