0

如果这个问题是重复的,请原谅我,但我被我一直在处理的代码所困扰。我正在为自己创建一个程序来创建随机的团队,并且我一直在尝试找到一种简单的方法来创建插入数量的团队。我喜欢的地方在这里:

print("How many teams would you like?")
numberteam = input("Number: ")

listnumber = 0

teams = []
while numberteam + 1:
    teams.append(Team(str(listnumber + 1)) = [])

我是一个相当新的编码员,所以我敢肯定,除了对变量使用表达式很明显之外,可能还有其他错误,但是任何关于解决这个问题的简单方法的建议都会很棒!

另外,如果我遗漏了什么,请尽管问!(顺便说一下我正在使用python)

4

2 回答 2

3

试试这个(我清理了一下):

print("How many teams would you like?")
numberteam = int(input("Number: "))
# Create a dictionary, where each team has an emtpy list
teams = dict([('Team{}'.format(i), []) for i in range(numberteam)])
# The following also works
# teams = {'Team{}'.format(i):[] for i in range(numberteam)}

然后,您可以像这样访问团队:

teams['Team3'] # returns an empty list

上面的速记是

print("How many teams would you like?")
numberteam = int(input("Number: "))
teams = {}
for i in range(numberteam):
    teams['Team{}'.format(i)] = []
于 2013-10-07T02:03:34.957 回答
1

也许你正在寻找这样的东西:

import random

persons = ['Adan', 'Boris', 'Carla', 'Dora', 'Ernesto', 'Floridalma', 'Gustavo', 'Hugo', 'Ines', 'Juan']
random.shuffle (persons)

count = int(input('How many teams? '))
teams = [persons[i::count] for i in range(count)]
for idx, team in enumerate(teams):
    print ('Team {}: {}'.format(idx + 1, ', '.join(team)))

的内容person不需要是字符串,它可以包含自定义Person类的实例或您喜欢的任何内容。


解释:

  1. 填充要从中选择的列表。

  2. 将其随机播放到位。

  3. 提示用户输入团队的数量并将输入转换为整数。

  4. 创建团队。person[i::count]从索引 i 开始的 people 中选择每个 count-th 元素。因此,如果例如计数为 3,则在第一个团队中是(洗牌的)索引 0、3、6 等,在第二个团队中是 1、4、7 等,等等。

  5. 打印它。


一般的切片符号是iterable[start:stop:step].


或者如果你想使用字典,你可以使用字典理解:

teams = {'Team{}'.format(i + 1): persons[i::count] for i in range(count)}
for k, v in teams.items():
    print ('{}: {}'.format(k, ', '.join(v) ) )
于 2013-10-07T02:09:43.133 回答