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

Python 使用表达式作为变量的替代方法?,python,variables,python-3.x,expression,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)) =

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

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

listnumber = 0

teams = []
while numberteam + 1:
    teams.append(Team(str(listnumber + 1)) = [])
我是一个相当新的程序员,所以我确信除了使用一个变量表达式的明显错误之外,可能还有其他错误,但是任何关于解决这个问题的简单方法的建议都是非常好的

如果我遗漏了什么,请直接问! (顺便说一句,我正在使用python)

试试这个(我稍微整理了一下):

然后,您可以通过以下方式访问团队:

teams['Team3'] # returns an empty list
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)))

上面提到的是

print("How many teams would you like?")
numberteam = int(input("Number: "))
teams = {}
for i in range(numberteam):
    teams['Team{}'.format(i)] = []
试试这个(我清理了一下):

然后,您可以通过以下方式访问团队:

teams['Team3'] # returns an empty list
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)))

上面提到的是

print("How many teams would you like?")
numberteam = int(input("Number: "))
teams = {}
for i in range(numberteam):
    teams['Team{}'.format(i)] = []

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

teams['Team3'] # returns an empty list
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
类的实例或任何您喜欢的内容


说明:

  • 填充要从中选择的列表

  • 把它洗到位

  • 提示用户输入团队数量,并将输入转换为整数

  • 创建团队
    person[i::count]
    从person中选取从索引i开始的每个count元素。因此,如果计数为3,则第一组中的(混合)指数为0、3、6等,第二组中的指数为1、4、7等

  • 打印出来


  • 一般的切片表示法是
    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) ) )
    

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

    teams['Team3'] # returns an empty list
    
    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
    类的实例或任何您喜欢的内容


    说明:

  • 填充要从中选择的列表

  • 把它洗到位

  • 提示用户输入团队数量,并将输入转换为整数

  • 创建团队
    person[i::count]
    从person中选取从索引i开始的每个count元素。因此,如果计数为3,则第一组中的(混合)指数为0、3、6等,第二组中的指数为1、4、7等

  • 打印出来


  • 一般的切片表示法是
    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) ) )
    


    我很难理解您的代码,但它似乎是随机的组合。洗牌和列表切片将是您最好的选择……另外,请记住python不是C。而NumberTam+1:并没有达到您期望的效果。它向
    numbertam
    添加1,然后丢弃该值<代码>编号TAM没有更新。所以seth,我希望创建新的列表,并将它们的变量设置为Team1,Team2。。。等等,直到达到所需的团队数量。然后,稍后,我会把人们的名字,随机地洗牌,然后把他们放到这些列表中。我明白了,你想要一本字典!哦,是的,我有一段时间没有编码了,我知道我能做些什么来解决这个问题。基本上,我只是想知道如何才能为每次迭代创建一个新的列表,以创建所需的团队数量。我很难理解您的代码,但它似乎是随机的组合。洗牌和列表切片将是您最好的选择……而且,请记住,python不是C。
    ,而numbertam+1:
    并没有达到您所期望的效果。它向
    numbertam
    添加1,然后丢弃该值<代码>编号TAM没有更新。所以seth,我希望创建新的列表,并将它们的变量设置为Team1,Team2。。。等等,直到达到所需的团队数量。然后,稍后,我会把人们的名字,随机地洗牌,然后把他们放到这些列表中。我明白了,你想要一本字典!哦,是的,我有一段时间没有编码了,我知道我能做些什么来解决这个问题。基本上,我只是想知道如何为每次迭代创建一个新的列表,以创建所需数量的团队。是的,这正是我所寻找的!我是一个新的编码员,还没来得及研究字典的功能。谢谢是的,我不确定OP是否有python2或python3,所以我选择了一个对这两种都适用的解决方案。不过,现在我想起来,它看起来像是基于
    print
    语法和
    input
    @SethMMorton检查标记的python3;)@Haidro哈哈,我真的没人注意tonight@SethMMortonn很抱歉把这个带回来,但我还有一个问题。现在我有了这些空的团队列表,我如何根据用户想要的团队数量随机地将人员放置在这些列表中?是的,这正是我要寻找的!我是一个新的编码员,还没来得及研究字典的功能。谢谢是的,我不确定OP是否有python2或python3,所以我选择了一个对这两种都适用的解决方案。不过,现在我想起来,它看起来像是基于
    print
    语法和
    input
    @SethMMorton检查标记的python3;)@Haidro哈哈,我真的没人注意tonight@SethMMortonn很抱歉把这个带回来,但我还有一个问题。现在我有了这些空的团队列表,我如何根据用户想要的团队数量随机地将人员放置在这些列表中?我明白了。。。起初它看起来像是C++的名称空间语法。我应该仔细阅读一下。多亏了python的列表理解和切片,您可以通过执行
    teams=[persons[I::count]for I in range(count)]
    @SethMMorton我使用字典而不是列表添加了第二个版本。我明白了。。。起初它看起来像是C++的名称空间语法。多亏了python的帮助,我本应该读一读这篇文章的