簡體   English   中英

如何為列表使用隨機蘭德?

[英]How to use Random Randint for List ?

我寫了3個問題,我想使用Random Randint隨機選擇和顯示一個。 我不知道如何在我的代碼中使用Random Randint來使用它。

你不會使用random.randint() 在所有 您可以使用random.choice()代替:

import random

questions = [question1, question2, question3]
random_question = random.choice(questions)

該函數從序列中隨機選擇一個元素。

如果您需要隨機而不是重復地提出問題,則需要做一些不同的事情。 您可以使用random.shuffle()將整個問題列表隨機化,然后在每次需要新問題時從該列表中選擇一個(也許從列表中將其刪除)。 這就產生了一個隨機的問題序列

import random

questions = [question1, question2, question3]
random.shuffle(questions)

for question in questions:
    # questions are iterated over in random order

要么

questions = [question1, question2, question3]
random.shuffle(questions)

while questions:
    next_question = questions.pop()

不要使用randint ,使用random.choice 此功能將從列表中選擇一個隨機項目。

import random

l = [1,2,3]

>>> random.choice(l)
2
>>> random.choice(l)
1
>>> random.choice(l)
1
>>> random.choice(l)
3

如果由於任務需要使用randint ,則可以查看choice工作方式。 稍微簡化一下,是這樣的:

def choice(seq):
    i = randrange(len(seq))
    return seq[i]

randint(a, b)只是“ randrange(a, b+1)的別名”。

因此,您從Martijn Pieter的答案中知道如何使用choice ,您知道choice什么用,您應該能夠從那里弄清楚如何從那里使用randint

如果“您要選擇替換商品(也就是說,每次都有1/3的機會)”

#!/usr/bin/env python
import random

questions = ["question1", "question2", "question3"]
while True: # infinite loop, press Ctrl + C to break
    print(random.choice(questions)) 

“無需替換(也就是說,每個僅顯示一次,因此經過3個選擇之后,就什么也沒有了)”

#!/usr/bin/env python
import random

questions = ["question1", "question2", "question3"]
random.shuffle(questions)
while questions: # only `len(questions)` iterations
    print(questions.pop()) 

“或某種混合動力(例如,以隨機順序選擇所有3個,然后以隨機順序再次重復所有3個,等等。”

#!/usr/bin/env python
import random

questions = ["question1", "question2", "question3"]
while True: # infinite loop, press Ctrl + C to break
    random.shuffle(questions)
    for q in questions: # only `len(questions)` iterations
        print(q) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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