gpt4 book ai didi

Python list reversed 不能被多次访问

转载 作者:行者123 更新时间:2023-12-03 21:40:43 24 4
gpt4 key购买 nike

谁可以给我解释一下这个?

import numpy as np

arr = reversed(np.arange(11))

print(list(arr))


print(list(arr))

print(list(arr))
此代码的输出是:
enter image description here
为什么我不能多次访问 arr 变量?

最佳答案

reversed返回 iterator .当您第一次调用 list在它上面,你一直迭代到最后,它再也没有什么可以回馈的了。因此,如果您调用 list再次,它立即说“停止迭代”,你得到一个空列表。
解决方法是在您第一次调用 list 时存储它在上面:

>>> arr = list(reversed(np.arange(11)))
>>> arr
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
不过,在 numpy 的上下文中,您不会强制转换为 list但在 numpy 域中反转:
>>> arr = np.arange(11)[::-1]
或者
>>> arr = np.arange(10, -1, -1)
或者
>>> arr = np.flip(np.arange(11))
或者
>>> arr = np.flipud(np.arange(11))
要得到
>>> arr
array([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])

关于Python list reversed 不能被多次访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67956395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com