Python 如何在dict中获取项目索引或编号以及键、值
对于dictionary,我希望跟踪已解析的项的数量。与下面所示相比,有没有更好的方法Python 如何在dict中获取项目索引或编号以及键、值,python,Python,对于dictionary,我希望跟踪已解析的项的数量。与下面所示相比,有没有更好的方法 count = 0 for key,value in my_dict.iteritems(): count += 1 print key,value, count 您可以使用: enumerate()有效地向正在循环的迭代器添加计数。在上面的示例中,我告诉enumerate()从1开始计数,以匹配您的示例;默认值是从0开始 演示: 谢谢,我不知道你甚至可以在像字典这样没有顺序的容器上枚举
count = 0
for key,value in my_dict.iteritems():
count += 1
print key,value, count
您可以使用:
enumerate()
有效地向正在循环的迭代器添加计数。在上面的示例中,我告诉enumerate()
从1开始计数,以匹配您的示例;默认值是从0开始
演示:
谢谢,我不知道你甚至可以在像字典这样没有顺序的容器上枚举。我以前在列表中使用过enumerate。一个小区别-原始代码从1开始(因此使用enumerate(items,1)
)@vkaul11:有一个顺序,它不是您应该依赖的顺序,因为它依赖于字典的插入和删除历史记录。:-)换句话说,.iteritems()
方法将以任意顺序返回元素<代码>枚举()
不在乎;它只是像您的代码一样计算元素,每次向内部计数器添加1。是的,我的意思是没有像列表那样的索引顺序,其中有第一个元素,第二个元素等等。@vkaul11:.items()
和.keys()
和.values()
返回列表,有第一个元素,第二个元素,等等。但是键和值返回的顺序不是您想要依赖的。列表将顺序保持为常量,而字典则不然。
for count, (key, value) in enumerate(my_dict.iteritems(), 1):
print key, value, count
>>> somedict = {'foo': 'bar', 42: 'Life, the Universe and Everything', 'monty': 'python'}
>>> for count, (key, value) in enumerate(somedict.iteritems(), 1):
... print key, value, count
...
42 Life, the Universe and Everything 1
foo bar 2
monty python 3