Python 如何将'key:list'对的dict转换为元组列表?

Python 如何将'key:list'对的dict转换为元组列表?,python,algorithm,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,“t

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

然后将所有内容合并到一个列表中。

你的意思是

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

[(2, 'tag1'), (2, 'tag2'), (3, 'tag2')]
(你的
'tag3'
来自哪里?

你是说这个吗

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

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

(你的
'tag3'
来自哪里?

这应该可以完成工作

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

这应该可以完成任务

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

请解释一下
l1
如何变成
l2
,因为我真的没有最模糊的想法…@Aran Fey更新了这个问题。请解释一下
l1
如何变成
l2
,因为我真的没有最模糊的想法…@Aran Fey更新了这个问题。道歉,修正了这个问题,是的,但是有没有更快的方法使用itertools等?为什么(以及如何)使用itertools<代码>命令项也是懒惰的;内存方面没有任何好处。抱歉,修复了问题,是的,但是有没有更快的方法使用itertools等?为什么(以及如何)使用itertools<代码>命令项也是懒惰的;记忆方面,没有什么可以获得的。