【发布时间】:2020-11-20 08:08:48
【问题描述】:
所以我即将学习如何在 python 中编码,因此我正在尝试制作一个随机团队生成器,如下所示。
目前,我有一个输出。但是,我的输出不是我想要的。 我一直在寻找一种方法来保存 while 循环中的数据并将其导出到在 for 循环中创建的列表并每次保存数据。然而,这似乎是一项不可能完成的任务。
#team selector
import random
player_list=[]
players=int(input('input number of players: '))
teams= int(input('input number of teams: '))
if players<teams:
print('to many teams, to few players')
else:
for i in range(0, players):
names =input('input player {0}: '.format(i+1))
player_list.append(names)
print(player_list)
while len(player_list)>0:
for i in range(0, teams):
q=i+1
teamq=[]
while len(player_list)>0:
z=i+1
playerz=random.choice(player_list)
teamq.append(playerz)
player_list.remove(playerz)
break
if player_list==[]:
break
print('team {0} is '.format(q), teamq)
所以目前我的输出是例如
input number of players: 5
input number of teams: 3
input player 1: James
input player 2: peter
input player 3: john
input player 4: ann
input player 5: Jackson
['James', 'Peter', 'John', 'Ann', 'Jackson']
team 1 is ['Peter']
team 2 is ['Jackson']
team 3 is ['James']
team 1 is ['Ann']
team 2 is ['John']
team 3 is []
而我想要的是
input number of players: 5
input number of teams: 3
input player 1: James
input player 2: peter
input player 3: john
input player 4: ann
input player 5: Jackson
['James', 'Peter', 'John', 'Ann', 'Jackson']
team 1 is ['Peter', 'Ann']
team 2 is ['Jackson', 'John']
team 3 is ['James']
谁能帮帮我?
【问题讨论】:
-
尝试使用
random.sample()。import mathplayerz=random.sample(player_list, min(math.ceil(players/teams), len(player_list))
标签: python