簡體   English   中英

生成具有不同數字的隨機列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM