Python,用随机的名字+姓氏填充NPC列表,如何不加倍?

x8diyxa7  于 2022-12-20  发布在  Python
关注(0)|答案(1)|浏览(90)

所以我来这里得到我的想法捷径。我写了一个小程序来填充我的游戏与随机NPC的。这是工作,但方式是他是dooin列表不是我所期望的或我所期望的,但我想找到变通办法。
如何不简单地加倍?:)我是初学者。是的,我可以使用dict,但我更喜欢list。这是一个很大的缺点吗?注解块很少尝试解决,但我知道在def random_male()中我添加了两个字符串。
对我来说,可能的方法是拆分这个,然后从名字和姓氏列表中获取索引,并使用“for”和“如果名字和姓氏......真的,我不知道如何绕过这个问题......目前:)任何点?

import random

women_names = ["Jennifer", "Jenna", "Judith", "Becky", "Kelly"]
man_names = ["Adam", "John", "Jack", "Jim", ]
surnames =["Salzinger", "Jefferson", "Blunt", "Jigsaw", "Elem"]
marriage_status = ["Single", "In couple", "Engaged", "Married", "Divorced", "Widow"]
male_NPCs = []
list = []

def clr_list(list):
    del list

def randomizer(list):
    random_choice = random.choice(list)
    clr_list(list)
    return random_choice

def random_male():
    male_surname = randomizer(surnames)
    male_name = randomizer(man_names)
    male_NPC = male_name + " " + male_surname
    return (male_NPC)

def add_one_man():
    male_NPCs.append(random_male())
    return

def addding_male_NPC(count_of_NPC_males):
    while count_of_NPC_males > 1:
        add_one_man()
        # for m in male_NPCs:
        #     unique_count = male_NPCs.count(m)
        #     if unique_count > 1:
        #         male_NPCs.pop(unique)
        #         count_of_NPC_males +=1
        #     else:
        count_of_NPC_males -= 1

count_of_NPC_males = int(input("How many males should create?: "))
addding_male_NPC(count_of_NPC_males)

print(male_NPCs)
print(len(male_NPCs))

所以我尝试了这个,但它不可能计数字符串或不知何故不使用好。计数什么是最有可能的。得到的想法采取索引之前,创建字符串的总和,并使用它来检查双,但我觉得我做了圆圈。我明白,提供的姓名和姓氏的列表并不保证与高数字双,但你得到了这一点。

def addding_male_NPC(count_of_NPC_males):
    while count_of_NPC_males > 1:
        add_one_man()
         for m in male_NPCs:
             unique_count = male_NPCs.count(m)
             if unique_count > 1:
                 male_NPCs.pop(unique)
                 count_of_NPC_males +=1
             else:
                  count_of_NPC_males -= 1

编辑这太可悲了:(

mylist = ["a", "b", "a", "c", "c"]
mylist = list(dict.fromkeys(mylist))
print(mylist)

但无论如何,它将削减计划和需要的项目数量。所以问题仍然是活跃的。这个答案是相当一半的答案。我等待更好的一个。

rkkpypqq

rkkpypqq1#

最后,将字符串列表转换为集合,然后再转换回列表以删除任何重复项,然后使用len()函数确定列表的长度与所需长度的比较,并再次调用该函数,这一次添加到列表中。

相关问题