[英]Generate a random list with different numbers
我正在嘗試生成一個包含 10 個不同數字的隨機列表。 這是我到目前為止所做的:
from random import randint
my_list = []
i = 0
while i < 10:
random = randint(1, 25)
if random not in my_list:
my_list.append(random)
i = i + 1
else:
i = i
print(my_list)
但由於某種原因它不起作用。
(更新:我的列表會將隨機數添加為字符串,我需要將其添加為整數)
您可以使用上面的代碼,它現在可以工作了。
對我來說看起來很簡單:
from random import randint
my_set = set()
while(len(my_set) < 10):
my_set.add(randint(0, 100))
my_list = list(my_set)
print(my_list)
我的隨機 output:
[96, 2, 35, 9, 87, 23, 88, 57, 91, 95]
使用set
然后轉換為list
,因為 list 可以包含重復的元素。
示例代碼是
from random import randint
my_set = set()
while len(my_set) < 10:
random = randint(1, 25)
my_set.add(str(random))
print(list(my_set))
在將隨機數添加到列表之前,您正在將隨機數轉換為字符串(出於某種原因)。 稍后,您檢查該數字是否是列表中的值,它永遠不會是,因為您從未將數字添加到列表中。 這是一個更簡單的問題演示:
>>> 3 in ['3']
False
不要理會字符串(或空操作i = i
)。
from random import randint
my_list = []
i = 0
while i < 10:
r = randint(1, 25)
if r not in my_list:
my_list.append(r)
i = i + 1
print(my_list)
您還可以使用一個集合,它會自動忽略重復項。
my_set = {}
while len(my_set) < 10:
my_set.add(randint(1,25))
print(my_set)
或者使用您正在重新實現的random.sample
:
my_list = random.sample(range(1,26), 10)
您還可以使用隨機庫:
import random
mylist = [random.randint(0,100) for item in range(10)]
Output: [4, 89, 40, 56, 37, 97, 73, 46, 10, 36]
random.randint(0,100) -> 這里指定隨機數的范圍
range(10) -> 在你的情況下 10 值
希望它能解決你的問題
這里有一個生成10的隨機int的方法。你也可以通過改變randint()中的范圍來改變隨機數的范圍。 而且,你也可以通過我上次寫的代碼總結出lst中的數字。
from random import randint
count = 0
lst = []
for count in range(10):
lst.append(randint(0,100))
count += 1
print(lst)
print(sum(lst))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.