Python中dict的元组列表[重复]

Posted

技术标签:

【中文标题】Python中dict的元组列表[重复]【英文标题】:Tuple list from dict in Python [duplicate] 【发布时间】:2010-11-20 17:30:22 【问题描述】:

如何在 Python 中从 dict 获取键值元组列表?

【问题讨论】:

【参考方案1】:

仅适用于 Python 2.x(感谢 Alex):

yourdict = 
# ...
items = yourdict.items()

详情请见http://docs.python.org/library/stdtypes.html#dict.items。

仅适用于 Python 3.x(取自 Alex's answer):

yourdict = 
# ...
items = list(yourdict.items())

【讨论】:

是的,Python 2.* 中显而易见的方式。【参考方案2】:

对于元组列表:

my_dict.items()

但是,如果您所做的只是迭代项目,通常最好使用dict.iteritems(),因为它一次只返回一个项目,而不是一次返回所有项目,因此内存效率更高:

for key,value in my_dict.iteritems():
     #do stuff

【讨论】:

for 循环可用于生成列表解析或生成器。【参考方案3】:

在 Python 2.*thedict.items() 中,如 @Andrew 的回答。在 Python 中3.*list(thedict.items())(因为那里的items 只是一个可迭代的视图,而不是一个列表,如果您需要一个列表,则需要显式调用list)。

【讨论】:

嗯,我不确定我是否喜欢这样......不过,谢谢你的提示。 @Andrew - 他基本上是在 Python 3+ 中,dict.items() 的行为将发生变化以匹配 dict.iteritems() 的行为,正如我在帖子中描述的那样。 @Triptych 我只是抱怨他们选择将迭代器设为默认视图。 安德鲁,我认为这个选择只是反映了迭代器是你大部分时间想要的事实。 @Andrew,benhoyt 是对的——绝大多数用途只是循环,并且在您确实需要列表的极少数情况下显式创建列表毕竟是一种非常 Pythonic 的方法!-) 【参考方案4】:

对于 Python > 2.5:

a = '1' : 10, '2' : 20 
list(a.itervalues())

【讨论】:

这是一个简单的值列表,而不是发布者要求的 (key, value) 元组列表【参考方案5】:

在 Python 中从 dict 转换为 list 很容易。三个例子:

d = 'a': 'Arthur', 'b': 'Belling'

d.items() [('a', 'Arthur'), ('b', 'Belling')]

d.keys() ['a', 'b']

d.values() ['Arthur', 'Belling']

如上一个答案中所见,Converting Python Dictionary to List。

【讨论】:

以上是关于Python中dict的元组列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用python从不同长度的元组列表中删除重复项

python中的元组和列表有啥区别,哪个更有效[重复]

Python学习篇 Python中的元组

Python字典,作为不增加值的元组键

我的元组中的那些小“u”是啥? (python 2.7)[重复]

在 Python 元组列表中查找重复项