我有一個不同長度的列表數據集,其中包含 0-4 范圍內的整數,如下所示:a = [0, 1, 1, 2, 4, 3, 2]b = [1, 3, 2, 3, 2]c = [2, 4, 0, 4, 1, 3, 1, 4]d = ...我使用一個簡單的函數確定元素的頻率:def getFreq(group): freq = [0] * 5 for item in group: for i in range(5): if (item == i): freq[i] += 1 return freq我使用這樣的 for 循環運行所有列表:all_groups = [a, b, c]for group in all_groups: getFreq(group)如何自動存儲結果列表,以便以后可以進行進一步的操作/比較?根據評論,最好使用字典。如何在 for 循環中循環字典鍵,以便將函數的每個實例的結果保存到不同的鍵?
2 回答

jeck貓
TA貢獻1909條經驗 獲得超7個贊
您可以像這樣解壓列表理解以獲取不同變量中的結果:
freq_a, freq_b, freq_c = [getFreq(group) for group in all_groups]

弒天下
TA貢獻1818條經驗 獲得超8個贊
您可以使用:
freq_a, freq_b, freq_c = [getFreq(x) for x in [a, b, c]]
a另外,考慮到、b、 和中的項c都是整數,您可以稍微優化您的函數:
def getFreq(group):
freq = [0] * 5
for item in group:
while item > (len(freq) - 1):
freq.append(0)
freq[item] += 1
return freq
這會立即為您的團隊帶來更多動態價值:-)
添加回答
舉報
0/150
提交
取消