【发布时间】:2021-12-08 07:56:41
【问题描述】:
目前我正在从事一个个人项目...我想根据要加入的人数随机分组。我正在创建一个将用户添加到其中的列表。并计算加入的用户数量。在我需要将用户添加到新列表之后。有没有办法在功能组中做到这一点?还是换个角度看?
def participents():
users = []
counter = 0
while True:
participent = input('Who is gonna join? ')
if participent != 'stop':
users.append(participent)
elif participent == 'stop':
break
for user in users:
counter +=1
def groups():
if counter % 3 == 0:
ListsNeeded = counter / 3
IntListsNeeded = int(ListsNeeded)
print(IntListsNeeded)
print("It's gonna be trio's")
else:
ListsNeeded = counter / 2
IntListsNeeded = int(ListsNeeded)
print(IntListsNeeded)
print("It's gonna be duo's")
groups()
participents()
【问题讨论】:
-
您可以使用标准库中的
random.choices。 -
for user in users: counter += 1?为什么?counter == len(users)...elif participent == 'stop': break?为什么?else: break使用 groups() 与用户一起注意...您可能需要查看random.shuffle(users)以随机化列表中的参与者并查看 how-do-you-split-a-list-into-evenly-sized-chunks 以将其拆分...搜索 SO 将在 95%所有初学者案例都提供了足够的输入,因此您可以自己解决......所以根本不需要问 -
如果你有一个特定的问题,让你的代码更短:如果你清楚如何询问参与者并将他们放入一个列表 - 为什么用 10 行来膨胀你的minimal reproducible example 做你知道如何做的事情做?只需硬编码一个列表:
users_case_1 = ["a","b","c","d","e"](即 % 3 == 2)和users_case_2 = ["a","b","c","d","e","f"](即 % 3 == 0)并更清楚地说明您的真正问题 - 这不是一个讨论论坛,因此开放式“如何做更好”的问题往往被忽视,因为它们往往显示出没有太多的研究努力。顺便说一句,您的问题到底是什么? -
顺便说一句。随机列表也有数百个帖子,f.e. best-way-to-randomize-a-list-of-strings-in-python - 所以基本上你的待办事项(随机化、分区)都是已解决的问题......
标签: python list partitioning