融合密钥-成对列出

时间:2018-09-26 15:23:18

标签: python algorithm

l1转换为l2的最佳方法是什么?

 l1 = {1: [],  
       2: ["tag1", "tag2"],
       3: ["tag2"])

 l2 = [(2, "tag1"), 
       (2, "tag2"),
       (3, "tag2")]

我们正在尝试查找所有键值组合,但忽略空组合。

例如

1: []->没什么(因为没有配对)

2: ["tag1", "tag2"]-> [(2, "tag1"), (2, "tag2")]

3: ["tag2"]-> [(3, "tag2")]

然后将其全部合并到一个列表中。

2 个答案:

答案 0 :(得分:4)

你是那个意思吗?

[(key, value) for key, values in l1.items() for value in values]

导致

[(2, 'tag1'), (2, 'tag2'), (3, 'tag2')]

(您的'tag3'来自哪里?)

答案 1 :(得分:0)

这应该可以完成工作;

l1 = {1: [],  
      2: ["tag1", "tag2"],
      3: ["tag2"])

l2 = []
for key, values in l1.items():
    new_values = []
    for value in values:
        new_values.append(value)
    l2.append(tuple(new_values))


>>> l2
[(2, "tag1"), (2, "tag2"), (3, "tag2")]