如何字典键值对转换为元组
必须将这样的:如何字典键值对转换为元组
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")}
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()]
在这里你去:
>>> d = {"k1": ("v1"), "k2": ("v2"), "k3": ("v3")}
>>> [(a,d[a]) for a in d]
[('k3', 'v3'), ('k2', 'v2'), ('k1', 'v1')]
这只是一个间接的做'list(d.items())'的方法,OP已经在报告他们已经尝试过了。 –
Nop,'d [a]'不是一个列表(不像拆包'd.items()'),请参阅我的结果。 – Blusky
你的代码**完全等价于**。尝试做'list(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')]
如果你是肯定的格式,只需使用(K,V [0]) – pazqo
注意,'[(K,V)对K,V在d.items()]'应该只是' list(d.items())',如果被评估,它给了我'[('k2','v2'),('k3','v3'),('k1','v1')]''为你提供的例子。请注意,你的错误输出示例'[('k1',('v1')),('k2',('v2')),('k3',('v3'))]'实际上是评估到'[''k1','v1'),('k2','v2'),('k3','v3')]'。那么,你有**吗? –
你确定你的字典不是'{“k1”:(“v1”,),“k2”:(“v2”,),“k3”:(“v3”,)}'?否则,这些值应该是字符串,而不是元组。 –