首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python f-string和append()

Python f-string和append()
EN

Stack Overflow用户
提问于 2020-05-09 01:32:41
回答 3查看 203关注 0票数 0

我希望你们都做得很好!

所以我想从一个列表中随机选择6个人组成5个小组,然后将这6个选择的名字附加到特殊的小组中。例如:如果a,b,c,d,e,f是选择的前6个名字,将这些名字附加到group1;在group1包含6个名字之后,接下来的6个名字->附加到group2;以此类推,直到我有5组6个人。

我希望您能理解我,并希望您能提供帮助:)

我的代码:

代码语言:javascript
复制
import random

names = [30 names i dont wanna share]

group1 = list()
group2 = list()
group3 = list()
group4 = list()
group5 = list()


def choosegroup():


    def chooserandom():
        return(random.choice(names))


    def creategroup():
        for i in range(1,7):

            chosed = chooserandom()
            names.remove(chosed)

            #while(chosed in group1):
                #print('Ups')
                #print(chosed + ' already chosed')
            #    chosed = chooserandom()


            #print(chosed)

            group1.append(chosed)

    #print('Group 1:' + '\n' + str(group1) + '\n')

    createdgroup = creategroup()

    print(group1)

for i in range(1,6):
    print(f'Group {i}')
    choosegroup()
    group1.clear()
EN

回答 3

Stack Overflow用户

发布于 2020-05-09 01:38:00

代码语言:javascript
复制
random.shuffle(names)
groups = [ names[i:i+6] for i in range(0, len(names), 6) ]

现在groups[0]groups[1]等是你的6人小组。

票数 2
EN

Stack Overflow用户

发布于 2020-05-09 01:35:27

一旦您有了名称列表,为了将它们分成随机的组,我会使用numpy

代码语言:javascript
复制
import numpy as np
groups = np.array(names)
np.shuffle(groups)
groups = np.reshape(groups, (5,6))

作为使用数字而不是名称的示例

代码语言:javascript
复制
>>> names = np.arange(30)
>>> names
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29])
>>> np.random.shuffle(names)
>>> names
array([ 8, 18, 23,  7, 25, 14, 11, 20, 13, 24, 15, 26, 19, 21, 12, 17,  0,
        6,  3, 10, 29,  9, 16, 28, 22,  5,  1,  4, 27,  2])
>>> np.reshape(names, (5,6))
array([[ 8, 18, 23,  7, 25, 14],
       [11, 20, 13, 24, 15, 26],
       [19, 21, 12, 17,  0,  6],
       [ 3, 10, 29,  9, 16, 28],
       [22,  5,  1,  4, 27,  2]])
票数 0
EN

Stack Overflow用户

发布于 2020-05-09 01:47:37

您可以从全局变量访问它们,如下所示:

代码语言:javascript
复制
globals()[f"group{i}"]

尽管从字典中存储和检索它们是优选的。

您可以重写代码,如下所示:

代码语言:javascript
复制
import random
from collections import defaultdict

names = [30 names i dont wanna share]
groups = defaultdict(list)

def choosegroup(group_name):


    def chooserandom():
        return(random.choice(names))


    def creategroup(group_name):
        for i in range(1,7):

            chosed = chooserandom()
            names.remove(chosed)

            groups[group_name].append(chosed)

    createdgroup = creategroup()

    print(group_name, "\n", group[group_name])

for i in range(1,6):
    print(f'Group {i}')
    group_name = f"group{i}"
    choosegroup(group_name)
    groups[group_name].clear()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61684727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档