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

时间:2013-10-07 01:55:23

标签: python variables python-3.x expression

请原谅我,如果这个问题重复一遍,但我一直坚持使用我一直在努力的代码。 我正在为自己创建一个程序来创建随机的人员团队,我一直在努力寻找一种简单的方法来组建一个团队。 我所吮吸的领域是:

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

listnumber = 0

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

我是一个相当新的编码器,所以我敢肯定除了显而易见的使用变量的表达式之外可能存在其他错误,但任何关于修复此问题的简单方法的建议都会很棒!

如果我遗漏了什么,请问! (顺便说一句,我使用的是python)

2 个答案:

答案 0 :(得分: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)] = []

答案 1 :(得分: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开始的每个第count个元素的人员中选择。因此,如果是count是3,第一队是(洗牌)指数0,3,6等,在第二队1,4,7等等。

  5. 打印出来。


  6. 一般切片符号为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) ) )