如何在python中创建一个集时禁用自动排序

时间:2015-09-10 04:53:54

标签: python sorting

我正在尝试用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')      

1 个答案:

答案 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)

您将获得一个列表(即已订购),并且不会看到任何重复项。