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

时间:2017-10-12 21:33:18

标签: python python-3.x dictionary tuples data-conversion

必须转换:

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

关闭,但我不能有那些额外的括号。

4 个答案:

答案 0 :(得分:1)

你可以试试这个:

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

输出:

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

答案 1 :(得分:0)

你走了:

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

答案 2 :(得分:0)

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

已经退货

[('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()]

答案 3 :(得分:0)

只需将字符串从列表推导中的元组中索引,即

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

这给出了

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