请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

items和iteritems的区别说法有误(关于迭代器对象)

iteritems返回迭代器对象可以循环遍历而items无法实现错误。

区别:

(1)items返回的是迭代对象它是可以循环遍历的。

例如:在**Kwargs键值对参数表(也有的人叫关键字可变参数列表)

def test_kwargs(first,**kwargs):

    for key,value in kwargs.items():

        print "kwargs",(key,value)

test_kwargs(1,2,3,4)

(2)iteritems返回迭代器对象。迭代器是一个可以记住遍历位置的对象。

迭代器对象可以使用常规for语句进行遍历

list = [1,2,3,4]

it = iter(list)  # 将迭代对象转换成迭代器对象

for x in it:

print(x, end="")

也可以使用next()函数,直到输出最后一个元素后报stopiteration错误

import sys

list = [1,2,3,4]

it = iter(it)

while True:

    try:

        print(next(it))

    except stopIteration:

        sys.exit()


正在回答 回答被采纳积分+3

6回答

毫末 2018-04-10 21:40:13

List是可迭代的,但是需要借助python内置的方法iter,而迭代器对象本身自带iter和next

1 回复 有任何疑惑可以回复我~
毫末 2018-04-10 21:34:29

items()返回的是列表对象,而iteritems()返回的是iterator对象。
列表当然可以用for循环遍历了。
迭代器对象本身内置了next方法。列表是没有这个方法的。
关于这个问题,可以再搜搜items和iteritems的区别,及什么是迭代器

1 回复 有任何疑惑可以回复我~
  • 提问者 赵佳子彧 #1
    这个问题听过你这小结之后就去查了,所以才知道你说items()返回的不能遍历有点瑕疵
    回复 有任何疑惑可以回复我~ 2018-04-10 21:54:26
毫末 2018-04-10 21:55:56

嗯,可能是嘴误

0 回复 有任何疑惑可以回复我~
  • 提问者 赵佳子彧 #1
    因为想借这门课程回顾一下知识点所以有点仔细认真,你的课程总体不错讲的挺好
    回复 有任何疑惑可以回复我~ 2018-04-10 21:59:26
提问者 赵佳子彧 2018-04-10 21:51:50

嗯嗯,这个区别看过不少资料,你讲的没错,我说的是你课程里说items()返回不能循环遍历,而iteritems返回的可以循环遍历,这句话有问题

0 回复 有任何疑惑可以回复我~
提问者 赵佳子彧 2018-04-10 21:23:09

Python cookbook没有说items()方法返回对象不能遍历吧。我也看过英文版python document,况且讲的关键字参数表也用了这个方法。

0 回复 有任何疑惑可以回复我~
毫末 2018-04-10 20:47:25

这个参考的是python cookbook

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信