我正在尝试用100个随机整数填充一组。但是当我这样做时,python会自动为我排序。我想按原样加载设置,所以我有机会学习。有没有更好的方法(从一个范围创建一组随机int,每个int只出现一次)
P.S我也将该集合写入文本文件。
import random
noDuplicate = set()
with open('test.txt', 'w') as f:
while noDuplicate.__len__() < 100:
noDuplicate.add(random.randint(0,100))
for i in noDuplicate:
f.write(str(i) + '\n')
答案 0 :(得分:1)
正如评论和其他答案中所述,sets
未被订购,因此使用的收集类型错误。我想你想要使用它们,因为你不想在结果集合中重复。
如果您有一组元素,并希望选择x中的许多元素而没有重复,那么最好使用的功能可能是random.sample
。
import random
possible_numbers = range(0, 101) # Note randint is inclusive of both ends
no_duplicate = random.sample(possible_numbers, 100)
您将获得一个列表(即已订购),并且不会看到任何重复项。