[英]Only the last result of a for-loop iteration is being saved in a dictionary
我對 Python 很陌生,我目前正在嘗試將 for 循環的結果存儲在字典中。 我的目標是將“比率”作為鍵,將“頻率”作為值。 我想遍歷一個唯一比率列表並將它們計算在一個名為comparison_dict
的字典中。 我已經完成了那部分,為此我首先從list_orig_ratios
comparison_dict
創建了一個類型列表。
frequencies = dict()
sorted_unique_ratios = sorted(unique_ratios)
list_orig_ratios = list(comparison_dict.values())
for ratio in sorted_unique_ratios:
freq = list_orig_ratios.count(ratio)
frequencies = {ratio:freq}
print(frequencies)
當我在 for 循環末尾添加 print 命令時,我可以看到所有比率對及其計數,但它們中的每一個都是一個單獨的字典。 我希望將它們全部作為一個字典,以比率作為鍵,頻率(計數)作為值。 如果我在循環之外運行打印命令,我會看到只有最后一個鍵:值對保存在那里。
如何將此 for 循環的結果存儲在單個字典中?
您正在為每次迭代中的名稱frequencies
分配一個新的dict
,而不是向現有的dict
添加一個新的鍵值對。
for ratio in sorted_unique_ratios:
freq = list_orig_ratios.count(ratio)
frequencies[ratio] = freq
print(frequencies)
不過,更簡單的解決方案是使用字典推導:
frequencies = {ratio: list_orig_ratios.count(ratio) for ratio in sorted(unique_ratios)}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.