gpt4 book ai didi

python - 混洗范围迭代器

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:11 25 4
gpt4 key购买 nike

在 python3 中,range 不返回一个列表,而是一个迭代器。

这很棒并且有一些优点,例如不会立即生成整个列表,而是只在需要时生成元素。

现在假设我想要一个随机顺序的范围(基本上是一个打乱的范围)。在 python2 中我会这样做:

my_list = range(n)
np.random.shuffle(my_list)

这在 python3 中不起作用。一旦解决方案是生成实际列表然后洗牌(然后将与 python2 相同)

my_list = list(range(n))
np.random.shuffle(my_list)

但是使用这种策略我们失去了迭代器的优势。

问题:如何创建仅在请求时才给我索引的随机有序范围迭代器?

最佳答案

shuffled 模块怎么样?

pip3 install shuffled

>>> import shuffled
>>> my_list=shuffled.Shuffled(16)
>>> for i in my_list: print(i)
...
2
14
15
1
4
5
3
0
7
10
11
6
8
9
12
13
>>> my_list=shuffled.Shuffled(16)
>>> for i in my_list: print(i)
...
0
1
2
10
7
4
13
6
3
11
8
9
5
14
15
12

关于python - 混洗范围迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50833256/

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