如何通过字符串变量作为字典键获取对应值?代码问题咨询
问题分析与解决
嘿,问题出在你定义currency的方式上!你现在把currency设成了一个列表(['USD']),但字典offer的键是字符串类型的'USD'——字典的键必须和你传入的类型完全匹配,用列表当键去查自然找不到对应的项,会直接触发KeyError。
另外还要提个小细节:你代码里offer里的0,50应该是笔误,要改成0.50(小数点),不然会变成一个元组(0, 50),和你期望的数值不符。
两种修正方案
方案1:把currency改成字符串类型
这是最直接的方式,既然你要的是单个键,直接把currency定义为字符串就行:
offer = {'USD': [0.12, 0.15, 0.20, 0.50]} currency = 'USD' # 这里改成字符串,不是列表 print(offer[currency])
运行后就能得到你想要的输出:[0.12, 0.15, 0.20, 0.50]
方案2:如果currency必须是列表(比如业务场景限制)
如果因为某些原因currency只能是列表(比如从接口/文件读取的就是列表格式),那你可以取列表的第一个元素来当键:
offer = {'USD': [0.12, 0.15, 0.20, 0.50]} currency = ['USD'] print(offer[currency[0]]) # 通过索引[0]取出列表里的字符串'USD'
这样也能正确拿到对应的值。
内容的提问来源于stack exchange,提问作者steenou
相关产品推荐
相关产品推荐

