如何使用字符串格式從字典中調用信息?使用字符串格式從字典中提取數據
這裏就是我試圖到目前爲止(可能相當糟糕......)
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