如何将字典键值对转换为元组

How to convert dictionary key-value pairs to tuples

必须转换为:

d = {"k1": ("v1"), "k2": ("v2"), "k3": ("v3")}

对此:

[('k1, v1'), ('k2, v2'), ('k2, v3')]

我试过这个:

[(k, v) for k, v in d.items()]

但是得到了这个:

[('k1', ('v1')), ('k2', ('v2')), ('k3', ('v3'))]

很接近,但我不能有那些额外的括号。

给你:

>>> d = {"k1": ("v1"), "k2": ("v2"), "k3": ("v3")}
>>> [(a,d[a]) for a in d]
[('k3', 'v3'), ('k2', 'v2'), ('k1', 'v1')]
d = {"k1": ("v1"), "k2": ("v2"), "k3": ("v3")}
print [(k, v) for k, v in d.items()]

已经returns

[('k3', 'v3'), ('k2', 'v2'), ('k1', 'v1')]

(这和实际做的一样list(d.items())


现在,如果你的字典实际上是

d = {"k1": ("v1",), "k2": ("v2",), "k3": ("v3",)}

那就可以解释你的输出了。在这种情况下,你需要做

print [(k, v[0]) for k, v in d.items()]

只需在您的列表理解中从元组中索引字符串,即

 [(k, v[0]) for k, v in d.items()]

这给出了

 [('k3', 'v'), ('k2', 'v'), ('k1', 'v')]

你可以试试这个:

d = {"k1": ("v1"), "k2": ("v2"), "k3": ("v3")}
new_data = list(d.items())

输出:

[('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')]