我创建了一个程序,从1-10生成5个随机整数,并将它们添加到空集。出于某种原因,当我运行程序时,它有时会返回4个整数,有时则返回5个。这里发生了什么?
import random
set1 = set()
for x in range(5):
integer = random.randint(1,10)
set1.add(integer)
print(set1)
你正在使用一个集合,集合不能包含重复项,如果生成两次相同的数字,它只会出现在集合中一次,理论上它可能你的输出只有1个数字(如果添加了相同的数字5)次)。
您应该使用列表:
import random
output = []
for x in range(5):
integer = random.randint(1,10)
output += [integer]
print(output)
生成n
随机唯一数字的最简单方法是使用random.sample
:
>>> import random
>>> set(random.sample(range(1, 11), 5))
set([8, 9, 5, 6, 10])
请注意,如果您还想包含数字range(1, 11)
,则应使用10
。
Python集不会显示重复。修复脚本的一种简单方法是使用列表而不是集合。但有一点需要注意的是,如果你想要像12345
一样使用所有数字,这将无法解决问题。以下脚本将返回[1, 2, 3, 4, 5]
列表。
list1 = [] # Make an empty list
for x in range(5):
# randomly choose a number from 1 - 10 and append it to our list 5 times
integer = random.randint(1,10)
list1.append(integer)
print(list1) # print the list