[英]How can I add something to my code so there are no repeats every 6 times when it adds to a list?
我和我的一個伙伴只是嘗試做一些東西的初學者,所以我們不必手工制作列表,但我們無法弄清楚如何使代碼至少在添加到列表中的下 5 個名稱
import random
num_in_list = int(20)
data = [
]
blacklist = [
]
preferred = [
]
not_preferred = [
]
def generate_list(num_in_list, blacklist, preferred):
list = []
while len(list) < num_in_list:
index = random.randint(0, len(data) - 1)
data = data[index]
if name not in blacklist:
if data in preferred:
if random.random() < 0.75:
list.insert(0, data)
else:
if random.random() < 0.50:
list.insert(0, data)
else:
if data in not_preferred:
if random.random() < 0.25:
rotation.insert(0, data)
return list
list = generate_list(num_in_list, blacklist, preferred)
我嘗試四處搜索,但我很難理解並且無法弄清楚如何實施其他人的解決方案。
讓我們將解決方案分解為幾個步驟:
import typing
import random
def generate_names(n: int) -> typing.List[str]:
l: typing.List[str] = []
while len(l) < n:
new_name: str = random.choice(NAMES)
first_five: str = new_name[0:5]
l.add(new_name)
for _ in range(0, 4):
non_similar_name: str = random.choice(NAMES)
while non_similar_names.startswith(first_five):
non_similar_name = random.choice(NAMES)
l.add(non_similar_name)
return l
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.