簡體   English   中英

我如何向我的代碼添加一些東西,以便在它添加到列表時不會每 6 次重復一次?

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

我嘗試四處搜索,但我很難理解並且無法弄清楚如何實施其他人的解決方案。

讓我們將解決方案分解為幾個步驟:

  1. 生成一個起始名稱(並存儲其前 5 個字母)
  2. 生成另外 4 個名稱(確保不要生成前 5 個字母相同的名稱)
  3. 重復步驟 1 直到你有足夠的名字
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.

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