必須將這樣的:如何字典鍵值對轉換爲元組
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")}
這樣:
[('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」,)}'?否則,這些值應該是字符串,而不是元組。 –