Python:将包含值列表的键值对的字典转换为元组列表

Pin*_*ts0 1 python dictionary tuples list

我正在尝试使用带有键值对的字典,其中的值是一个列表,并将它们转换为一个元组列表。

我有以下字典:

d={'a': [33, 21, 4, 32], 'b': [6, 100, 8, 14]}
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[(33, 6), (21, 100), (4, 8), (32, 14)]
Run Code Online (Sandbox Code Playgroud)

下面是我试过的代码,但它没有让我到达那里。

d={'a': [33, 21, 4, 32], 'b': [6, 100, 8, 14]}
  
# Converting into list of tuple 
list = [(key, value) for key, value in d.items()] 
  
# Printing list of tuple 
print(list) 
Run Code Online (Sandbox Code Playgroud)

该代码输出一个列表值:

[('a', [33, 21, 4, 32]), ('b', [6, 100, 8, 14])]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Jab*_*Jab 6

您可以zip一起使用 dict 值:

>>> d = {'a': [33, 21, 4, 32], 'b': [6, 100, 8, 14]}
>>> list(zip(*d.values()))
[(33, 6), (21, 100), (4, 8), (32, 14)]
Run Code Online (Sandbox Code Playgroud)

如果您只想有效地获得特定范围的值,您可以itertools.islice在使用 list 之前使用它。

>>> from itertools import islice
>>> list(islice(zip(*d.values()), 2))
[(33, 6), (21, 100)]
Run Code Online (Sandbox Code Playgroud)