如何限制群组?

问题描述 投票:0回答:1

这是我学习Python的第一天,也是我的第一个项目。所以我的数据中有 62 个项目,希望它随机挑选出其中的 48 个,并将它们随机放入 4 个一组中。因此,总共 48 个国家分为 12 个不同的组,每组 4 个。它继续将 16 个组放入其中,每个组有 4 个国家,最后一组有 2 个国家。我该如何解决这个问题或限制群组?

import random

countries = [ 'Argentina','France', 'Belgium',  'England','Brazil', 'Portugal', 'Netherlands',  'Spain',    'Italy',    'Croatia',  'United_States',    'Colombia', 'Morocco',  'Mexico',   'Uruguay',  'Germany','Senegal','Japan',    'Switzerland', 'Iran',  'Denmark',  'Ukraine', 'South_Korea',   'Australia',    'Austria', 'Hungary',   'Sweden', 'Poland', 'Wales',    'Nigeria',  'Ecuador',  'Peru',     'Serbia',   'Qatar',    'Russia',   'Czech_Republic', 'Czechia',    'Egypt',    'Ivory_Coast',  'Scotland', 'Türkiye',  'Tunisia',  'Chile',    'Algeria',  'Mali',     'Panama',   'Romania',  'Norway',   'Slovakia',     'Canada',   'Greece', 'Cameroon',   'Costa_Rica',   'Saudi_Arabia',     'Venezuela',    'Jamaica', 'Paraguay', 'Slovenia',  'Iraq','South_Africa',  'Republic_of_Ireland',  'Finland']

group = 1
membersInGroup = 4

for country in countries [:]:
    if membersInGroup == 4 :
        print ("group {} consist of:" .format(group))
        membersInGroup = 0
        group += 1

person = random.choice (countries)
print (person)
membersInGroup += 1
countries.remove (str(person))`

我不知道编码的所有术语,所以我觉得自己很有限哈哈

python list random grouping limit
1个回答
0
投票

查看以下脚本:

import random

countries = ['Argentina', 'France', 'Belgium', 'England', 'Brazil', 'Portugal', 'Netherlands', 'Spain', 'Italy', 'Croatia', 'United_States', 'Colombia', 'Morocco', 'Mexico', 'Uruguay', 'Germany', 'Senegal', 'Japan', 'Switzerland', 'Iran', 'Denmark', 'Ukraine', 'South_Korea', 'Australia', 'Austria', 'Hungary', 'Sweden', 'Poland', 'Wales', 'Nigeria', 'Ecuador', 'Peru', 'Serbia', 'Qatar', 'Russia', 'Czech_Republic', 'Czechia', 'Egypt', 'Ivory_Coast', 'Scotland', 'Türkiye', 'Tunisia', 'Chile', 'Algeria', 'Mali', 'Panama', 'Romania', 'Norway', 'Slovakia', 'Canada', 'Greece', 'Cameroon', 'Costa_Rica', 'Saudi_Arabia', 'Venezuela', 'Jamaica', 'Paraguay', 'Slovenia', 'Iraq', 'South_Africa', 'Republic_of_Ireland', 'Finland']

groups = {}

group = 1
membersInGroup = 0

while group <= 12:
    group_members = []
    while membersInGroup < 4:
        if not countries:
            break  # Break out if there are no more countries to allocate
        person = random.choice(countries)
        group_members.append(person)
        countries.remove(person)
        membersInGroup += 1
    groups[group] = group_members
    group += 1
    membersInGroup = 0

# Print groups with group number and list of members
for group_num, group_members in groups.items():
    print("Group {} consists of:".format(group_num))
    for member in group_members:
        print(member)
    print()
© www.soinside.com 2019 - 2024. All rights reserved.