E. *_*ein 0 python random for-loop
我正在尝试编写一个随机选择数字并将它们添加到列表中的代码random_numbers,但是如果已经生成了一个随机数,则代码会检测到并用另一个数字替换该数字,直到每个数字都不同。
import random
random_numbers = []
for x in range(11):
Run Code Online (Sandbox Code Playgroud)
这部分生成一个随机整数并将其附加到列表中random_numbers:
random_numbers.append('[q' + str(random.randint(1, 11)) + ']')
Run Code Online (Sandbox Code Playgroud)
这部分应该遍历列表并检查生成的随机数是否已经生成,并替换它:
for item in range(len(random_numbers)):
if random_numbers[x] == random_numbers[item]:
random_numbers[x] = '[q' + str(random.randint(1, num_of_qs_in_file)) + ']'
print(random_numbers)
Run Code Online (Sandbox Code Playgroud)
输出会有所不同,但几乎总是列表多次具有相同的整数。有人可以帮忙吗?
在适度范围内执行非重复“随机”(伪随机)整数的一种直接方法是使用range(1, n),然后random.shuffle()使用列表创建一个列表,然后使用pop()或切片从列表中获取任意数量的数字。
import random
max = 11
l = list(range(1, max)) # the cast to list is optional in Python 2
random.shuffle(l)
Run Code Online (Sandbox Code Playgroud)
现在,每次您想要一个随机数时,只需l.pop().
另一个是使用random.sample()——见https://docs.python.org/3/library/random.html
| 归档时间: |
|
| 查看次数: |
9376 次 |
| 最近记录: |