簡體   English   中英

只有 for 循環迭代的最后一個結果被保存在字典中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM