首页 > 解决方案 > 如何从列表中创建具有多个值的字典?

问题描述

我目前有两个列表(实际列表要长得多,但这里有一个例子:)

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的所有实例。我怎么做?

标签: pythonlistdictionary

解决方案


您可以collections.defaultdictzip两个列表一起使用来填充键和值。

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]})

推荐阅读