如何将字典转换为元组列表?

2024-04-16 14:35:04 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一本像这样的字典:

{ 'a': 1, 'b': 2, 'c': 3 }

我怎样才能把它转换成这个?

[ ('a', 1), ('b', 2), ('c', 3) ]

我怎样才能把它转换成这个?

[ (1, 'a'), (2, 'b'), (3, 'c') ]

Tags: 字典
3条回答
>>> d = { 'a': 1, 'b': 2, 'c': 3 }
>>> d.items()
[('a', 1), ('c', 3), ('b', 2)]
>>> [(v, k) for k, v in d.iteritems()]
[(1, 'a'), (3, 'c'), (2, 'b')]

它不是按你想要的顺序排列的,但是dict没有任何特定的顺序。1根据需要对它进行排序或组织。

见:items()iteritems()


在Python 3.x中,您不会使用iteritems(它已经不存在了),而是使用items,它现在将向字典项返回一个“视图”。请参阅Python 3.0的What's New文档和新的documentation on views

1:dicts的插入顺序保持为added in Python 3.7

你可以使用列表理解。

[(k,v) for k,v in a.iteritems()] 

会让你[ ('a', 1), ('b', 2), ('c', 3) ]

[(v,k) for k,v in a.iteritems()] 

另一个例子。

Read more about list comprehensions如果你喜欢的话,你能用它们做什么是非常有趣的。

因为没有其他人这么做,我将添加py3k版本:

>>> d = { 'a': 1, 'b': 2, 'c': 3 }
>>> list(d.items())
[('a', 1), ('c', 3), ('b', 2)]
>>> [(v, k) for k, v in d.items()]
[(1, 'a'), (3, 'c'), (2, 'b')]

相关问题 更多 >