Python,创建一个没有相同输出的琐事列表两次

2024-05-16 04:25:49 发布

您现在位置:Python中文网/ 问答频道 /正文

import random
names = ['Gio', 'Dano', 'Gian']
chores = [ 'Dookies', 'Restroom', 'Floor']
name = random.choice (names)
chore = random.choice (chores)
phrase = name + '' + chore +''
print (phrase)

我希望这是一个随机选择,以像吉奥杜基斯,达诺楼,吉安厕所随机等结束。谢谢


Tags: nameimportnamesrandomprintchoicegiochores
2条回答

您可以首先洗牌chores列表,以确保顺序是随机的,然后从该列表中逐个删除pop元素(因此返回它们,同时也从列表reference中删除它们)。例如:

import random
names = ['Gio', 'Dano', 'Gian']
chores = [ 'Dookies', 'Restroom', 'Floor']
random.shuffle(chores) # this shuffles inplace, so no need to reassign
for name in names:
    chore = chores.pop() # returns the last element of the chores
    phrase = name + ' ' + chore +' '
    print (phrase)

这将有效地将您的每一位names(人员)分配到家务列表中的一项家务。它很有用,因为你也可以有重复的家务(例如,你需要两个人来做“地板”),这可以反映在你的列表中,你可以从中pop()

使用random.shuffle来洗牌家务列表(无需洗牌名称)。然后,对于名称列表中的每个索引,打印该索引处的名称以及索引处的杂务

当您的需求更复杂时(名称和杂务的大小不匹配,名称/杂务的配对不应该重复等等),您当然需要更复杂的算法

相关问题 更多 >