如何使用字符串格式从字典中调用信息?使用字符串格式从字典中提取数据
这里就是我试图到目前为止(可能相当糟糕......)
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肯定存储在我的字典中。
有没有更好的方法来做到这一点?
print number_stats["chm%s" % (value)]
应该工作。
但你应该请改为:
print number_stats.get("chm%s" % (value), "some_default_value")
如果用户输入无效密钥,请避免崩溃。有关get
方法的更多信息,请参见this。
当你做number_stats["chm%"] % (value,)
,你首先做number_stats["chm%"]
,然后将% (value,)
应用到结果。你想要的是直接应用这些%
字符串:
number_stats["chm%s" % (value,)]
请注意,你需要%s
; %
本身不是有效的字符串替换。
但是,可能有更好的方法来做到这一点。为什么你的字典有像"chm1"
和"chm2"
这样的密钥,而不是仅仅把密钥本身作为密钥(即,有密钥1和2)?那么你可以做number_stats[value]
。 (或者,如果你从raw_input
阅读value
你需要number_stats[int(value)]
谢谢!这是一个非常有用的解释我做错了什么 – user2586260
使用这样的。你必须使用字符串方括号内
格式化>>> number_stats={'a1': 1}
>>>
>>> print number_stats['a%s' % 1]
1
>>>
当你可以使用字符串format
方法替代...
value = input("Indicate a number: ")
print number_stats["chm{}".format(value)]
这是如此的有益!谢谢! – user2586260
不客气。请参阅BrenBarn的答案,以更好地解释初始代码的错误,以及关于使用字典的更多提示。另外,根据你在做什么或者你的偏好,可能还有其他的方式来安全地检索你的价值,使用.get只是最常见的一种。 – astrognocci