我目前有两个列表(真正的列表要长得多,但这里有一个例子:)
month = [12,12,12,12,11,11,11,10,...]
wave_height = [3,6,8,2,4,9,7,9,....]
我的目标是有一个字典看起来像:
12: 3, 6, 8, 2
11: 4, 9, 7
10: 9, ...
其中key为月份,values为wave_height的所有实例。我怎么做呢?
您可以使用collections.defaultdict
然后zip
您的两个列表一起填充键和值。
from collections import defaultdict
month = [12,12,12,12,11,11,11,10]
wave_height = [3,6,8,2,4,9,7,9]
data = defaultdict(list)
for m, w in zip(month, wave_height):
data[m].append(w)
结果
>>> data
defaultdict(<class 'list'>, {12: [3, 6, 8, 2], 11: [4, 9, 7], 10: [9]})
month = [12, 12, 12, 12, 11, 11, 11, 10]
wave_height = [3, 6, 8, 2, 4, 9, 7, 9]
wh = iter(wave_height)
out = {}
for m in month:
out.setdefault(m, []).append(next(wh))
print(out) # {12: [3, 6, 8, 2], 11: [4, 9, 7], 10: [9]}