首页 > 解决方案 > 如何使用列表列表和元组列表创建字典字典

问题描述

我想使用列表列表(距离)和元组列表(路由)创建字典结果。我可以做些什么来获取 Result 字典?

distance = [['167724.1407', '151859.5908', '150131.7254'],
            ['186216.5193', '170351.9694', '168624.1039']]


routes = [('A', 'ind1'), ('A', 'ind2'), ('A', 'ind3'),
          ('B', 'ind1'), ('B', 'ind2'), ('B', 'ind3')]


Result = {'A': {'ind1': '167724.1407', 'ind2': '151859.5908', 'ind3': '150131.7254' },
          'B': {'ind1': '186216.5193', 'ind2': '170351.9694', 'ind3': '168624.1039' }}

[编辑] 我正在用 PULP 解决线性规划问题,所以 A 和 B 是仓库的名称,而 ind1、ind2、ind3 是商店的名称。

标签: pythonpython-3.xlistdictionary

解决方案


您也可以使用itertools, chain.from_iterable+zip

from itertools import chain

result = {}

for (a,b), d in zip(routes, chain.from_iterable(distance)):
    result.setdefault(a, {}).update({b: d})

{'A': {'ind1': '167724.1407', 'ind2': '151859.5908', 'ind3': '150131.7254'}, 
'B': {'ind1': '186216.5193', 'ind2': '170351.9694', 'ind3': '168624.1039'}}

推荐阅读