![](/img/trans.png)
[英]How do i choose random string from python list other than using random.randint() in index?
[英]randomly choose from list using random.randint in python
如何使用random.randint()
選擇python列表中給出的隨機名稱。
我想從該列表中打印5個名字。 實際上,我知道如何對數字使用random.randint()
。 但我不知道如何從給定列表中選擇隨機名稱。
我們不允許使用random.choice
。
請幫幫我
>>> population = range(10)
您可以使用random.sample
嗎?
>>> names = random.sample(population, 5)
>>> names
[4, 0, 1, 2, 8]
僅使用random.randint
會更困難,但是如果您必須這樣做,我會這樣做:
>>> names = [population[random.randint(0, len(population)-1)] for x in range(5)]
>>> names
[2, 8, 6, 6, 9]
但這顯然是要更換的。 如果您不想替換,則需要一些更復雜的代碼。 例如,一個函數:
def custom_sample(population, count):
names = []
already_used = []
for x in range(count):
temp_index = random.randint(0, len(population)-1)
while temp_index in already_used:
temp_index = random.randint(0, len(population)-1)
names.append(population[temp_index])
already_used.append(temp_index)
return names
所以:
>>> names = custom_sample(population, 5)
>>> names
[7, 4, 8, 3, 0]
這不能保證沒有重復,因為random.choice更好。
import random
names = ["A", "B", "C", "D", "E", "F", "G", "H", "I"]
print([names[random.randint(0, len(names)-1)] for i in range(5)])
從列表中選擇隨機項目的最簡單方法是使用如下的random.randint()
,
假設您的清單是:
list_1 = ['cat', 'amusement park', 'bird watching']
然后您要隨機打印列表中的項目,
import random
print(list_1[random.randint(0,2)])
如果要使用random.randint()
從列表中獲取隨機元素,則可以使用以下選項
list_name = [...] # a sample list
size = len(list_name) # finding the length of the list
random_elemet = list_name[random.randint(0,size)] # get a random element
是的,對於來自一個總體的重復樣本,@ MaxLascombe的答案是可以的。 如果您不希望樣本中有圖塊,則應將所選的圖塊踢出去。 然后在其余列表上使用@MaxLascombe的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.