【问题标题】:Populate a key tuple and value in dictionary from lists in Python从 Python 中的列表填充字典中的键元组和值
【发布时间】:2017-09-04 14:00:37
【问题描述】:

我有三个大型列表,它们想用来填充 Python 中字典的键和值。这里是第一部分的一个小例子:

i = [0, 1, 2, 3, 4]
j = [2, 0, 0, 0, 0]
Cost = [13, 12, 13, 15, 13] 

我的目标是将 i 和 j 组合成一个元组键和成本作为一个值,如下所示:

Data = {(i[0],j[0]): cost[0], (i[1],j[1]): cost[1], }

我已经搜索过,但没有找到任何好的解决方案。那么有人知道如何通过循环或类似的方式填充字典和元组吗?目标是实现这一点:

Data = {(0, 2): 13, (1, 0): 12, (2, 0): 13, (3, 0): 15, (4, 0): 13}

Tnx!

【问题讨论】:

  • 我认为循环可以正常工作。它不适合你吗?
  • 没有循环是不可能的

标签: python loops dictionary tuples


【解决方案1】:

zipping 'em all 之后使用字典理解:

>>> {(k1, k2): val for k1, k2, val in zip(i, j, Cost)}
{(0, 2): 13, (1, 0): 12, (2, 0): 13, (3, 0): 15, (4, 0): 13}

【讨论】:

    【解决方案2】:

    您可以使用 Moses Koledoye 提到的相同 zip 内置功能。 像这样的:

    dict(zip(zip(i,j),Cost))

    结果:

    {(3, 0): 15, (2, 0): 13, (1, 0): 12, (0, 2): 13, (4, 0): 13}

    这将比 zip 函数的列表理解的 dict 更快。

    【讨论】:

    • 如果您对任何答案感到满意,您可以通过单击答案中的勾号图标来接受该答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 2015-05-02
    相关资源
    最近更新 更多