使用表达式作为变量的替代方法?

2024-10-03 09:13:16 发布

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

如果这个问题是重复的,请原谅我,但我一直在用一个代码工作。 我正在为自己创建一个程序来创建随机的团队,我一直在尝试找到一个简单的方法来创建一个插入的团队数量。 我喜欢的地方是:

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

listnumber = 0

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

我是一个相当新的编码器,所以我确信除了使用变量的表达式之外,可能还有其他错误,但是任何一个简单的方法来解决这个问题都是很好的。你知道吗

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


Tags: 方法代码程序you数量地方团队many
2条回答

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

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)] = []

也许你在找这样的东西:

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]从persons中挑选每个count元素,从索引i开始。因此,如果count是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) ) )

相关问题 更多 >