python 序列
x=iter(x)
<list_iterator object at 0x00000229D40FB820>
type(iter(x))
<class 'list_iterator'>
type(x)
<class 'list'>
next(iter(x))
1
next(iter(x))
1
next(iter(x))
1
next(iter(x))
1
请教大神,为啥我这全是1啊 本帖最后由 sfqxx 于 2023-4-17 22:26 编辑
在使用 `next()` 函数时,如果已经迭代到了序列的末尾,再次调用 `next()` 函数会抛出 `StopIteration` 异常。而在你的示例中,由于没有对 `iter()` 得到的迭代器对象进行多次循环遍历或使用,所以一直返回相同的元素。
如果你想要遍历迭代器对象中所有元素,可以使用循环来完成:
x =
it = iter(x)
for i in it:
print(i) # 打印出所有元素:1 2 3 4 5
另外,推荐在循环中使用迭代器对象,在循环内部不需要单独调用 `next()` 来获得元素,循环会自动地调用 `next()` 并获取下一个元素。
有用请设置最佳答案 您好!这里出现的问题是您在每次调用next(iter(x))时都创建了一个新的list_iterator对象,这导致每次迭代都从列表x的第一个元素开始。为了避免这个问题,请将迭代器对象分配给一个变量,然后在调用next()时使用该变量。以下是正确的示例:
x =
iterator_x = iter(x)
print(next(iterator_x))# 输出 1
print(next(iterator_x))# 输出 2
print(next(iterator_x))# 输出 3
print(next(iterator_x))# 输出 4
请注意,在迭代列表时,建议使用for循环,因为它可以更简洁地完成相同的任务:
x =
for item in x:
print(item)
这将按顺序打印列表中的每个元素。
本帖最后由 蓝海悦不悦 于 2023-4-17 22:49 编辑
x =
it = iter(x)
for i in it:
print(i)
输出:
1
2
3
4
5
或者
x =
it= iter(x)
print(next(it))
print(next(it))
print(next(it))
print(next(it))
print(next(it))
输出:
1
2
3
4
5
动作好快啊几个大哥{:10_248:} yinda_peng 发表于 2023-4-17 23:32
动作好快啊几个大哥
他们是先占楼,然后问ChatGPT,然后复制,编辑帖子 歌者文明清理员 发表于 2023-4-18 09:28
他们是先占楼,然后问ChatGPT,然后复制,编辑帖子
哇塞还可以这样 歌者文明清理员 发表于 2023-4-18 09:28
他们是先占楼,然后问ChatGPT,然后复制,编辑帖子
说真的,我基本没有占楼,我每次占楼都是被 sfqxx 逼的{:10_266:} isdkz 发表于 2023-4-18 10:48
说真的,我基本没有占楼,我每次占楼都是被 sfqxx 逼的
我也是{:10_266:}
(括号里的内容私聊) isdkz 发表于 2023-4-18 10:48
说真的,我基本没有占楼,我每次占楼都是被 sfqxx 逼的
{:10_256:} 歌者文明清理员 发表于 2023-4-18 11:28
我也是
(括号里的内容私聊)
{:10_256:}
页:
[1]