当前位置: 首页 > 面试题库 >

Python中的随机迭代

焦兴为
2023-03-14
问题内容

当您要依次遍历数字列表时,您将编写:

for i in range(1000):
  # do something with i

但是,如果要随机遍历范围(0..999)的数字列表怎么办?需要(在每个迭代中)随机选择在任何先前迭代中未选择的数字,并且需要对范围(0..999)内的所有数字进行迭代。

你知道该怎么做(聪明)吗?


问题答案:

您可以random.shuffle()习惯随机播放列表:

import random

r = list(range(1000))
random.shuffle(r)
for i in r:
  # do something with i

顺便说一句,在许多情况下,您将for在其他编程语言中使用整数范围内的循环,则可以直接描述要在Python中迭代的“事物”。
例如,如果您想使用的值i来访问列表的元素,则最好直接将列表洗牌:

lst = [1970, 1991, 2012]
random.shuffle(lst)
for x in lst:
  print x

注意:
使用时,请谨记以下警告random.shuffle()(摘自docs:

请注意,即使len(x)很小,x的排列总数也比大多数随机数生成器的周期大。这意味着长序列的大多数排列永远不会生成。



 类似资料:
  • 问题内容: 似乎是一个非常基本的问题。我有一个,我想对其进行迭代。一般, 绝招。但是我的要求不是迭代,而是随机地。 问题答案: 您可以在列表中使用。 请注意,这将随机排列列表,因此,如果顺序很重要,则应制作一个副本(并随机排​​列副本)。 或者,您可以创建一个包含元素的随机数组,并使用这些元素作为索引来访问中的“随机”元素。

  • 我正在尝试使用For循环将一个随机整数(0-2)添加到一个变量中指定的次数。我遇到的问题是,循环不是每次循环时都使用一个新的随机数,所以,如果我输入9,我只能得到0、9,或者18。 我希望一个对象返回的键“a”和“b”具有不同的数值。

  • 我想看看哪个随机数生成器包在我的神经网络中更快。 我目前正在更改github的一个代码,其中两个都是numpy。随机和随机包用于生成随机整数、随机选择、随机样本等。 我之所以更改此代码,是因为出于研究目的,我希望设置一个全局种子,以便能够比较超参数不同设置的精度性能。问题是,现在我必须为随机包和numpy包设置两个全局种子。理想情况下,我只想设置一个种子,因为来自两个随机数生成器序列的图形可能会更

  • 我有一个包,有以下内容: 6颗红色大理石 我想从袋子里取出一个随机的弹珠,记录它的颜色,然后重复,直到袋子里不再剩下弹珠: 排序计数 包={2:蓝色,5:绿色,6:红色} 累计={2:蓝色,7:绿色,13:红色} 兰德(0,13)=3 i=1 绿色的 袋子={2:蓝色,4:绿色,6:红色} 这是一种很好的方法,还是在时间复杂度方面有更有效的方法?

  • 问题内容: 如何在Python中创建随机字符串? 我需要先编号然后重复字符,直到完成为止,这就是我创建的 问题答案: 从(例如)小写字符生成字符串: 结果:

  • 问题内容: 我可以依靠地图的随机迭代顺序在Web应用程序中实现客户端的随机“配对”吗?我试过环顾四周,但似乎找不到这种随机性有多大的细分。 该算法将类似于: 当连接的客户端> 1000个时,这是否足够?还是应该维护一个单独的客户端片段并从中随机选择? 问题答案: 尽管它说是随机的(随机的)(spec,blog,hashmap源,另一个blog,SO),但分布远非完美。 为什么?因为我们喜欢地图 快