有没有办法有效地迭代在 Python 2 和 Python 3 中都有效的字典中的值/项目?
在 Python 2 中,我可以编写
for x in mydict:
for x in mydict.iterkeys():
for x in mydict.viewkeys():
for x in mydict.itervalues():
for x in mydict.viewvalues():
for x in mydict.iteritems():
for x in mydict.viewitems():
在 Python 3 中,我有以下可能性:
for x in mydict:
for x in mydict.keys():
for x in mydict.values():
for x in mydict.items():
所以,我可以用 , 迭代键for x in mydict
,这在 Python 2 和 3 中都有效。但是有没有一种方法可以迭代通用的值和键值对(“项目”)?我需要它来编写可以在两个 Python 版本中运行的 Python 代码。
(附带说明一下,可以轻松绕过带有迭代器的其他障碍;例如:
if sys.version_info.major<3:
from itertools import izip as zip, imap as map
但是,字典方法不能像map
和那样轻易地重新定义zip
。)
有任何想法吗?