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

Python-如何创建无重复的随机数列表?

宋涵衍
2023-03-14
问题内容

我尝试使用random.randint(0, 100),但一些数字相同。有没有一种方法/模块来创建唯一的随机数列表?

def getScores():
    # open files to read and write
    f1 = open("page.txt", "r");
    p1 = open("pgRes.txt", "a");

    gScores = [];
    bScores = [];
    yScores = [];

    # run 50 tests of 40 random queries to implement "bootstrapping" method 
    for i in range(50):
        # get 40 random queries from the 50
        lines = random.sample(f1.readlines(), 40);

问题答案:

这将返回从0到99范围内选择的10个数字的列表,没有重复。

import random
random.sample(range(100), 10)

参考你的特定代码示例,你可能希望一次从文件中读取所有行,然后从内存中的已保存列表中选择随机行。例如:

all_lines = f1.readlines()
for i in range(50):
    lines = random.sample(all_lines, 40)

这样,你只需要在循环之前实际从文件中读取一次即可。与返回文件开头并f1.readlines()为每次循环迭代再次调用相比,执行此操作效率更高。



 类似资料:
  • 在本例中,最大值仅为5,因此我可以逐个检查副本,但如何以更简单的方式执行此操作?例如,如果最大值为20,该怎么办?谢谢

  • 问题内容: 在这种情况下,MAX仅为5,因此我可以一张一张地检查重复项,但是如何以更简单的方式进行检查呢?例如,如果MAX的值为20,该怎么办?谢谢。 问题答案: 最简单的方法是创建一个可能数字的列表(1..20或任何数字),然后用对其进行混洗。然后,只需考虑你想要的许多元素。如果你的范围最终等于你需要的元素数量(例如,用于洗牌的卡片),则这非常好。 如果你想要(说)1..10,000范围内的10

  • 我试图创建一个没有重复的随机数组。 任务是从用户那里获取一个整数数组和最大值,用0到最大值之间的随机数填充数组,并显示没有重复的随机数组,不使用任何其他类,除了随机和扫描仪。 这是一个示例输出: 请输入数组的大小:10 请输入最大值:50 [39,2,17,49,12,19,40,31,42,15] 我需要帮助删除重复的内容。我不确定我所做的是否正确,我是一个初学者,但这是我目前所做的。非常感谢帮

  • 问题内容: 我想创建一个随机的整数列表以进行测试。数字的分布并不重要。唯一要数的是 时间 。我知道生成随机数是一项耗时的任务,但是必须有更好的方法。 这是我当前的解决方案: v2比v1快,但无法大规模使用。它给出以下错误: ValueError:样本大于总体 是否有一个快速,有效的解决方案能够在这种规模上工作? 答案的一些结果 安德鲁的:0.000290962934494 咬人:0.0058455

  • 我还没有经验,这是我的第一语言,所以任何建议和提示都会受到欢迎。 我正在尝试创建一个抽奖计划,询问参与者人数,并根据最大人数抽取一名获胜者。我尝试了: