【问题标题】:Dictionary with values as lists of tuples将值作为元组列表的字典
【发布时间】:2017-12-13 16:56:52
【问题描述】:

我有一个列表列表

[[1,2,3,4],[0,2,3,4],[0,1,3,4],[0,1,2,4],[0,1,2,3]]

我想创建一个字典,其中键是列表的索引,值是元组的列表,这样

0 : [(0,1),(0,2),(0,3),(0,4)]
1 : [(1,0),(1,2),(1,3),(1,4)]
2 : [(2,0),(2,1),(2,3),(2,4)]

等等。

是否可以这样做,使用理解?还是不使用太多的嵌套循环?

【问题讨论】:

  • 是的。向我们展示您首先尝试了什么。我们不是代码编写服务。

标签: python dictionary


【解决方案1】:
l = [[1,2,3,4],[0,2,3,4],[0,1,3,4],[0,1,2,4],[0,1,2,3]]
d = {ind: [(ind, v) for v in val] for ind, val in enumerate(l)}

这是输出

{0: [(0, 1), (0, 2), (0, 3), (0, 4)],
 1: [(1, 0), (1, 2), (1, 3), (1, 4)],
 2: [(2, 0), (2, 1), (2, 3), (2, 4)],
 3: [(3, 0), (3, 1), (3, 2), (3, 4)],
 4: [(4, 0), (4, 1), (4, 2), (4, 3)]}

【讨论】:

  • 所以理解中的理解。感谢您的帮助:)
【解决方案2】:

您的字典可以这样创建:

x = [[1,2,3,4],[0,2,3,4],[0,1,3,4],[0,1,2,4],[0,1,2,3]]
{i: [(i,j) for j in x[i] ] for i, _ in enumerate(x)}

一步一步搭建就很简单了:

您需要字典键的索引(_ 用于丢弃元素):

for i, _ enumerate(x)

您使用它们来构建字典:

{i: None for i, _ enumerate(x)}

每个值都是一个元组和x[i]的一个元素

[(i,j) for j in x[i]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2020-02-13
    • 2016-03-21
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    相关资源
    最近更新 更多