如何使用字符串格式调用字典中的信息?
这是我到目前为止所尝试的(可能非常糟糕......)
value = raw_input("Indicate a number: ")
print number_stats["chm%"] % (value,)
字典 number_stats 保存有关值“chm1”、“chm2”等的信息。
我得到一个关键错误,这让我感到困惑,因为项目 chm1 肯定存储在我的字典中。
有一个更好的方法吗?
如何使用字符串格式调用字典中的信息?
这是我到目前为止所尝试的(可能非常糟糕......)
value = raw_input("Indicate a number: ")
print number_stats["chm%"] % (value,)
字典 number_stats 保存有关值“chm1”、“chm2”等的信息。
我得到一个关键错误,这让我感到困惑,因为项目 chm1 肯定存储在我的字典中。
有一个更好的方法吗?
当你这样做时number_stats["chm%"] % (value,)
,你是先做,number_stats["chm%"]
然后再申请% (value,)
结果。您想要的是将%
直接应用于字符串:
number_stats["chm%s" % (value,)]
请注意,您需要%s
; %
本身不是有效的字符串替换。
但是,可能有更好的方法来做到这一点。为什么你的字典有键"chm1"
,"chm2"
而不是数字本身就是键(即,有键 1 和 2)?那么你可以这样做number_stats[value]
。(或者如果你value
从raw_input
你需要number_stats[int(value)]
像这样使用。您必须在方括号内使用字符串格式
>>> number_stats={'a1': 1}
>>>
>>> print number_stats['a%s' % 1]
1
>>>
print number_stats["chm%s" % (value)]
应该管用。
但你应该这样做:
print number_stats.get("chm%s" % (value), "some_default_value")
避免用户输入无效密钥时崩溃。有关该方法的更多信息,请参阅此内容get
。
作为替代方案,您可以使用字符串format
方法...
value = input("Indicate a number: ")
print number_stats["chm{}".format(value)]