栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python:将名称列表划分为大小相等的子列表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:将名称列表划分为大小相等的子列表

这可能有效。我确信有一种更简单的方法……可能涉及

itertools
。请注意,这
num_pages
仅大致决定了您实际将获得的页面数。

编辑:哎呀!有一个错误-
它切断了最后一组!下面的内容应该是固定的,但是请注意,最后一页的长度会有些不可预测。另外,我添加

.upper()
了可能的小写名称。

EDIT2:以前定义letter_groups的方法效率低下;以下基于dict的代码更具可扩展性:

names = ['Agrajag', 'Colin', 'Deep Thought', 'Ford Prefect' , 'Zaphod Beeblebrox', 'Zarquon']num_pages = 3def group_names(names, num_pages):    letter_groups = defaultdict(list)    for name in names: letter_groups[name[0].upper()].append(name)    letter_groups = [letter_groups[key] for key in sorted(letter_groups.keys())]    current_group = []    page_groups = []    group_size = len(names) / num_pages    for group in letter_groups:        current_group.extend(group)        if len(current_group) > group_size: page_groups.append(current_group) current_group = []    if current_group: page_groups.append(current_group)    return page_groupsprint group_names(names, num_pages)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419918.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号