当前位置: 首页 > news >正文

数组(list)分组、分段

对一个list进行分组,要求控制每组中的元素个数:

1.使用切片分组:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1] #lst可为空,最后返回值也为空
num=3 #定义每组包含的元素个数
for i in range(0,len(lst),num):
        print lst[i:i+num]

返回:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[8, 7, 6]
[5, 4, 3]
[2, 1]

2.使用迭代方式:

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1] #lst可为空

num=3 #只要不为0即可,大于lst长度也可以
def lstg(num,lst):
    for i in range(0,len(lst),num):
        yield lst[i:i+num]
lstgs = lstg(num,lst)      

for i in lstgs:
    print i
返回:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
[8, 7, 6]
[5, 4, 3]
[2, 1]

 

原始笨方法:

# -*- coding: UTF-8 -*-
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
num=4

def lstg(num,lst):
#定义每段的个数num
    l = len(lst)
    #取分成几组
    g = l/num
    #判断是否有剩余的数
    last = l%num

    lstn = []
    for i in range(g):
        i=i+1
        n=i*num
        m=n-num    
        lstn.append(lst[m:n])

    if  last <> 0:
        lstn.append(lst[-last:])
    return lstn

for i in lstg(num,lst):
    print i

 

print divmod(13,3) #返回(4, 1)

 

相关文章:

  • 编译并导入OpenSSL
  • Rsync软件错误总结
  • 《TCP/IP具体解释卷2:实现》笔记--ICMP:Internet控制报文协议
  • 小程序button引导用户授权
  • 初识云计算的三种服务模式 (IaaS SaaS PaaS)
  • 大数据hadoop领域技术总体介绍(各个组件的作用)
  • 使用git时候,屏蔽gitignore自身
  • 【VMCloud云平台】拥抱Docker(四)定制属于自已的镜像
  • vue ----自定义指令Vue.directive(),实现拖拽
  • Scalaz(14)- Monad:函数组合-Kleisli to Reader
  • 微软以白金会员加入 OpenChain 开源组织
  • 数学公式
  • 彻底搞懂浏览器Event-loop
  • jQuery插件 -- Cookie插件jquery.cookie.js(转)
  • Hbulider MUI
  • android图片蒙层
  • ERLANG 网工修炼笔记 ---- UDP
  • IDEA常用插件整理
  • input实现文字超出省略号功能
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • MYSQL 的 IF 函数
  • Rancher-k8s加速安装文档
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 技术:超级实用的电脑小技巧
  • 优化 Vue 项目编译文件大小
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (笔试题)合法字符串
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转) Android中ViewStub组件使用
  • (转)visual stdio 书签功能介绍
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .NET 设计一套高性能的弱事件机制
  • .NET 使用 XPath 来读写 XML 文件
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net和jar包windows服务部署
  • .NET开发人员必知的八个网站
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @JSONField或@JsonProperty注解使用
  • @WebServiceClient注解,wsdlLocation 可配置
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [Android Pro] AndroidX重构和映射
  • [AutoSAR系列] 1.3 AutoSar 架构
  • [AX]AX2012 SSRS报表Drill through action
  • [Bada开发]初步入口函数介绍
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能