【原创】从 列表的重复 到 用sum展开二层嵌套列表将子元素合并

转载请注明出处:https://www.cnblogs.com/oceanicstar/p/9517159.html

★像R语言里头有rep函数可以让向量的值重复,在python里面可以直接对列表用乘法让列表进行重复
注:这里生成的重复列表是个新列表(我们可以打印id查看一下)
a = [1,2]
b = a * 3
a
Out[1]: [1, 2]
b
Out[2]: [1, 2, 1, 2, 1, 2]
id(a)
Out[3]: 303757832
id(b)
Out[4]: 303741000

 

★将嵌套列表中的 子元素 合并,可以用sum函数,第二个参数传入一个空列表[]即可
注意:sum函数的参数包括两个(iterable可迭代对象,start求和的初始值),sum会把可迭代对象内的元素加在start参数传入的初始值上。
因此,如果初始值是个列表,那么可迭代对象也必须要是个列表,且必须是嵌套列表,因为只有这个列表元素也是列表时,这些元素才能跟初始值列表相加。
我们来列举几个例子
# 实际在计算:[] + [1,2] + [3,4]
sum([[1,2], [3,4]], [])
Out[13]: [1, 2, 3, 4]# 实际在计算:[5] + [1,2] + [3,4]
sum([[1,2], [3,4]], [5])
Out[14]: [5, 1, 2, 3, 4]# 实际在计算:[5,6] + [1,2] + [3,4]
sum([[1,2], [3,4]], [5,6])
Out[15]: [5, 6, 1, 2, 3, 4]# 实际在计算:[[5]] + [1,2] + [3,4]
sum([[1,2], [3,4]], [[5]])
Out[16]: [[5], 1, 2, 3, 4]# 实际在计算:[[5,6]] + [1,2] + [3,4]
sum([[1,2], [3,4]], [[5,6]])
Out[17]: [[5, 6], 1, 2, 3, 4]

 

我们会发现,这里sum函数都是在传入的第二个参数列表基础上,再合并了第一个参数——嵌套列表的所有子元素
★例子:如何让一个列表c = [1,2,3,4]中的每个元素重复指定次数(各元素重复次数按列表d=[4,1,3,2]来重复),生成一个新列表?
sum([[c[i]]*d[i] for i in range(len(c))], [])
Out[31]: [1, 1, 1, 1, 2, 3, 3, 3, 4, 4]# 更简单的(利用zip进行对应位置的元素匹配,免去了使用索引)
sum([[x] * y for x,y in zip(c, d)], [])
Out[43]: [1, 1, 1, 1, 2, 3, 3, 3, 4, 4]

 

利用的就是上面提到的:
1. 列表数据类型可以直接使用乘法来指定次数进行重复
2. sum(嵌套列表,[])可以展开二层嵌套列表并合并嵌套列表中的各子列表元素
注意:sum只能展开第一个参数中嵌套列表的最外头2层(实际上原理已经在上面提到了,就是展开列表里面的元素加在初始值上),例如下面这个例子
# 实际在计算:[0] + [[1,2], [3,4]] + [5,6]
sum([[[1,2],[3,4]],[5,6]], [0])
Out[34]: [0, [1, 2], [3, 4], 5, 6]

 

 

转载请注明出处:https://www.cnblogs.com/oceanicstar/p/9517159.html

转载于:https://www.cnblogs.com/oceanicstar/p/9517159.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言找出最大值和最小值并按降序排输出,大学一年级下学期C语言程序设计实验报告答案 完整版...

for(j7;j>i;j--)//将插入点以后的元素顺序往后移一位 a[j1]a[j];a[i]number;//插入数据 printf(\输出改变后的数组\\n\for(i0;i<8;i)//输出插入后仍有序的数组 printf(\ }(3)写一个3 x 5矩阵的转置程序&#xff0c;输出其原矩阵的值和转置以后的结果。提示&#xff1a;1)…

如何正确的使用微信公众号

我发现很多人可能不知道怎么在微信公众号里面查找自己想要的内容。所以制作了两个视频第一个是如何搜索文章&#xff0c;通过关键字搜索可以找到很多自己想要的内容还有通过微信公众号查找资料&#xff0c;这个是我最近刚增加的功能。~就这两件事~喜欢C/C语言或者正在学习C/C语…

shell替换程序里的代码

需求&#xff1a; 扩展名类型: .php .html .shtml .inc 将http://market.pk.com/files/union/ad_union_5.js替换为http://market.pk.com/files/union/union_5.jshttp://market.pk.com/files/advertisement/27/ad_27.js替换http://market.pk.com/files/upload/27/27.js http://m…

接上电就工作的单片机

对于手边的一盒STC单片机&#xff0c;测试一下它们使用相同的ISP方案在下载过程中是否都可以按照相同的方式完成程序的下载。同时对它们建立各自的元器件库&#xff0c;以便于后期的应用。通过这个实验&#xff0c;看到STC的单片机使用起来真实简捷明了&#xff0c;接上电就工作…

c语言编辑的库存管理软件,C语言课程设计,商品库存管理系统怎么做啊?

我教你。。#include#include#include#includeint count0;struct commodity{int id; /*商品编号*/int number; /*库存数量*/int price; /*单价*/char name[20]; /*商品名称*/char indate[9]; /*入库时间*/char deadline[9]; /*有效日期*/}a[100];void page_title(char *menu_ite…

Ogg入门--基本命令

1.切换到oracle用户&#xff0c;进入到goldengate的安装目录。 2.查看进程的运行状况&#xff1a; GGSCI (pxpaddb1) 1> info allProgram Status Group Lag at Chkpt Time Since ChkptMANAGER RUNNING EXTR…

华数联手海信升级互联网电视平台

据媒体报道&#xff0c;继百视通与康佳合作推出新的互联网电视平台之后&#xff0c;华数联手海信也升级了其互联网电视平台&#xff0c;以迎接即将到来十一黄金周期间的互联网电视大战。华数以数字电视和宽带接入起家&#xff0c;被业界誉为引领三网融合业务创新的黑马&#xf…

我的高中好友

很少写高中同学相关的文章&#xff0c;愿意是现在的生活上和原来的同学交集很少&#xff0c;他们的工作和我做的工作也有很大的差距。再一个是距离远&#xff0c;节假日不能互相走动。昨晚&#xff0c;我开直播。那时候是凌晨1点&#xff0c;然后我看到我一个高中的好朋友进了我…

类的初始化顺序详解

前言 先声明一个常识&#xff0c;类域和局部变量初始化的差异如下&#xff0c; 局部变量不初始化会报错&#xff1a; 类中属性(也称域)不赋初值&#xff0c;默认为0&#xff0c;如果是引用默认为空。 正题 一、类中属性按照定义的顺序初始化 我们声明一个Child类&#xff0c…

人体反应测试仪 c语言,人体反应速度测试仪毕业设计说明

1、.第一章 课题综述1.1 课题背景速度素质是指人体进行快速运动的能力&#xff0c;即在单位时间内迅速完成某一动作或通过某一距离的能力。反应速度是指人体对刺激发生反应的快慢。从生理机制分析&#xff0c;反应快慢取决于“反射弧”的五个环节&#xff1a;感受器传入神经神经…

nifity scaffold gem

rails3 使用nifty文章分类:Ruby编程1. 在Gemfile中添加&#xff1a;gem nifty-generators2. rails g nifty:layout3. rails g nifty:scaffold survey name:stringin railscast youll see the blue background style scaffold file is done by this gem

工程师的电脑桌面

【0】【1】【2】【3】【4】【5】【6】【7】【8】【9】【10】【11】【12】【13】【14】声明&#xff1a;本文素材来源网络&#xff0c;版权归原作者所有。如涉及作品版权问题&#xff0c;请与我联系删除。------------ END ------------转自黄工的公众号推荐阅读&#xff1a;专辑…

单片机控制小风扇马达c语言,模拟风扇控制电路(单片机C程序设计)

原标题&#xff1a;模拟风扇控制电路(单片机C程序设计)/*1、定时设置每按一下定时值在0分---2分----4分---6分----8分--10循环2、主电机工作方式有三种&#xff0c;A、PWM为三分之一B、PWM为二分之一 C、PWM为三分之二&#xff1b;3、显示第一位显示风类&#xff0c;第二三四位…

Jmeter JAVA请求

Jmeter Java请求 一、为什么要使用Java请求 现有的post 、 get 无法对加解密及鉴权的接口进行测试&#xff0c;需要进行封装&#xff0c;然后再请求&#xff0c;怎么进行封装&#xff1f;通常使用的方式是使用httpclient 工具类型来操作&#xff0c;下面举一个简单的Java自定义…

国内IT图书出版的未来之路

前面两篇文章分别阐述了国内IT图书十年来的发展之路和当前国内IT图书出版社存在的一些不足&#xff0c;本篇则与大家一起再分析一下国内IT图书未来的发展之路。自2009年开始&#xff0c;国内IT图书出版社都意识到当前国内IT图书出版市场的一些不足&#xff0c;纷纷进行了图书选…

我的微信群里有一个外国人

最近&#xff0c;不知道怎么滴&#xff0c;我的微信群里面多了一个外国华人&#xff0c;然后他在群里面分享了他在国外的生活。实话说&#xff0c;我不曾羡慕过在美国生活的人们&#xff0c;我害怕走在街上突然遇到的枪击事件&#xff0c;也害怕每天面对的肯德基汉堡&#xff0…

c语言 从文件读入数组,C++ 将一个文件读入数组再读出数组的方法

如下所示&#xff1a;#include#includeusing namespace std;#define MAX_PACK_SIZE 10240void main(){char filePath[256];strcpy(filePath,"F:/视频/1.mp4"); //获取路径FILE *pFile;pFilefopen(filePath,"rb");if(pFileNULL){cout<return ;}fseek(pFi…

[HDU5215]Cycle

题目大意&#xff1a;给定一张边权为1的无向图&#xff0c;问是否存在长度为奇数的环和长度为偶数的环。(n<105,m<3*105) 调都调不好的的代码 容易想到的是&#xff0c;从一个点x开始DFS&#xff0c;如果两次访问到一个点&#xff0c;这两条路径就会构成一个环 根据两次到…

第一次收到这么用心的感谢信

今天收到一个读者的感谢信心里特别暖&#xff0c;发出来给大家看看说明这很长时间的付出&#xff0c;说的很多话&#xff0c;是对别人是有帮助的&#xff0c;我也希望能够帮助到更多的人&#xff0c;希望大家有方向&#xff0c;有自己对生活的态度&#xff0c;然后坚持自己的理…

android fragment 底部菜单栏,一句话搞定Android底部导航栏,一键绑定Fragment、ViewPager...

现在大多数App都会用到底部导航栏&#xff0c;比如常见的聊天工具QQ、微信、购物App等等&#xff0c;有了底部导航栏&#xff0c;用户可以随时切换界面&#xff0c;查看不同的内容。它的实现方式也很多&#xff0c;以前大多使用TabHost来实现&#xff0c;但是现在我们有很多更好…