我尝试使用random.randint(0, 100),但一些数字相同。有没有一种方法/模块来创建唯一的随机数列表?
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()为每次循环迭代再次调用相比,执行此操作效率更高。
f1.readlines()