鱼C论坛

 找回密码
 立即注册
查看: 2019|回复: 10

[已解决]python 序列

[复制链接]
发表于 2023-4-17 22:24:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
x=[1,2,3,4,5]
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啊
最佳答案
2023-4-17 22:26:54
您好!这里出现的问题是您在每次调用next(iter(x))时都创建了一个新的list_iterator对象,这导致每次迭代都从列表x的第一个元素开始。为了避免这个问题,请将迭代器对象分配给一个变量,然后在调用next()时使用该变量。以下是正确的示例:
x = [1, 2, 3, 4, 5]
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 = [1, 2, 3, 4, 5]

for item in x:
    print(item)

这将按顺序打印列表中的每个元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-17 22:25:33 | 显示全部楼层
本帖最后由 sfqxx 于 2023-4-17 22:26 编辑

在使用 `next()` 函数时,如果已经迭代到了序列的末尾,再次调用 `next()` 函数会抛出 `StopIteration` 异常。而在你的示例中,由于没有对 `iter()` 得到的迭代器对象进行多次循环遍历或使用,所以一直返回相同的元素。

如果你想要遍历迭代器对象中所有元素,可以使用循环来完成:
x = [1, 2, 3, 4, 5]
it = iter(x)
for i in it:
    print(i) # 打印出所有元素:1 2 3 4 5

另外,推荐在循环中使用迭代器对象,在循环内部不需要单独调用 `next()` 来获得元素,循环会自动地调用 `next()` 并获取下一个元素。
有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-17 22:26:54 | 显示全部楼层    本楼为最佳答案   
您好!这里出现的问题是您在每次调用next(iter(x))时都创建了一个新的list_iterator对象,这导致每次迭代都从列表x的第一个元素开始。为了避免这个问题,请将迭代器对象分配给一个变量,然后在调用next()时使用该变量。以下是正确的示例:
x = [1, 2, 3, 4, 5]
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 = [1, 2, 3, 4, 5]

for item in x:
    print(item)

这将按顺序打印列表中的每个元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-17 22:45:29 | 显示全部楼层
本帖最后由 蓝海悦不悦 于 2023-4-17 22:49 编辑

x = [1,2,3,4,5]
it = iter(x)
for i in it:
    print(i)
输出:
1
2
3
4
5
或者
x = [1,2,3,4,5,]
it  = iter(x)
print(next(it))
print(next(it))
print(next(it))
print(next(it))
print(next(it))

输出:
1
2
3
4
5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-17 23:32:35 | 显示全部楼层
动作好快啊几个大哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-18 09:28:05 | 显示全部楼层
yinda_peng 发表于 2023-4-17 23:32
动作好快啊几个大哥

他们是先占楼,然后问ChatGPT,然后复制,编辑帖子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-18 10:43:59 | 显示全部楼层
歌者文明清理员 发表于 2023-4-18 09:28
他们是先占楼,然后问ChatGPT,然后复制,编辑帖子

哇塞还可以这样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-18 10:48:55 | 显示全部楼层
歌者文明清理员 发表于 2023-4-18 09:28
他们是先占楼,然后问ChatGPT,然后复制,编辑帖子

说真的,我基本没有占楼,我每次占楼都是被 sfqxx 逼的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-18 11:28:24 | 显示全部楼层
isdkz 发表于 2023-4-18 10:48
说真的,我基本没有占楼,我每次占楼都是被 sfqxx 逼的

我也是
(括号里的内容私聊)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-22 09:50:19 | 显示全部楼层
isdkz 发表于 2023-4-18 10:48
说真的,我基本没有占楼,我每次占楼都是被 sfqxx 逼的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-22 09:50:50 | 显示全部楼层
歌者文明清理员 发表于 2023-4-18 11:28
我也是
(括号里的内容私聊)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 15:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表