转载请注明出处: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

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

  1. python如何制作一个任意列表_在Python中扁平化任意嵌套列表的最快方法是什么?...

    慕用2447696 此函数应该能够快速平整嵌套的可迭代容器,而无需使用任何递归:import collectionsdef flatten(iterable):    iterator = iter( ...

  2. Python递归实现①把嵌套列表压平为一层列表②返回嵌套列表中某元素出现的个数③返回第n个斐波那契数

    一.把嵌套列表压平为一层列表 def flatten(nested_list):'''这是把嵌套列表压平为简单列表并返回的函数:参数 nested_list:一个嵌套列表'''#先定义一个空列表,用于 ...

  3. python嵌套列表操作_python 列表增删改查 嵌套 相关操作

    ---恢复内容开始--- 今日内容: 一.列表 1.  列列表的介绍        列列表是python的基础数据类型之⼀一 ,其他编程语⾔言也有类似的数据类型. 比如JS中的数 组, java中的数 ...

  4. c++如何让字符串重复输出_python编程入门八:列表、元组、字符串的转换及补充方法...

    在python中,包括我们之前已经讲过列表.元组及字符串的一些用法了,大家应该可以感觉到,这三种"数据类型"还是有很多相同之处的,所以python中也可以轻易的实现三种类型之间的转 ...

  5. java 有序列表_关于算法:在Java中为列表列表生成唯一的有序非重复组合

    我知道有很多类似的问题,并且已经阅读了几个小时.但是它们似乎都不符合我的要求. 我有列表列表(list >),列表可以是任何大小. 例: 我的外部列表大小是:4 清单内容 1. list(0) ...

  6. Python:利用collections库实现统计单个字或单个字母的频率统计并进行降序输出、统计一个列表内重复元素并以字典形式输出

    Python:利用collections库实现统计单个字或单个字母的频率统计并进行降序输出.统计一个列表内重复元素并以字典形式输出 目录 利用collections库实现统计单个字或单个字母的频率统计 ...

  7. python去重复记录_Python列表去重复项的N种方法(实例代码)

    说明 Python语言中列表(List)与其他语言的数组(Array)类似,是一种有序的集合数据结构,Python List可支持各种数据类型,长度也可动态调整,与JS中的数组或Java ArrayL ...

  8. python去重复元素_Python实现去除列表中重复元素的方法总结【7种方法】

    这里首先给出来我很早之前写的一篇博客,Python实现去除列表中重复元素的方法小结[4种方法],感兴趣的话可以去看看,今天是在实践过程中又积累了一些方法,这里一并总结放在这里. 由于内容很简单,就不再 ...

  9. Python 中list中所有值加和_Python 中去除列表中重复元素的5种方法

    (点击上方快速关注并设置为星标,一起学Python) 1.使用集合 Python中集合的元素是唯一的,具有去重的功能.使用集合与列表可以互转的特性,将列表转换为集合去重,再将集合转换为列表: def ...

最新文章

  1. TX2---ORB_SLAM2
  2. SQL Server 2008_企业版和开发版产品密钥
  3. 全排列(我开始怀疑自己的智商了....)
  4. 什么是跨域及跨域请求资源的方法?
  5. [Leetcode][第117题][JAVA][填充每个节点的下一个右侧节点指针][BFS]
  6. 机器学习知识总结系列- 模型评估(1-2)
  7. c/c++ 标准库 string
  8. 华为程序员:加了六天班,加班费一万四,网友:还缺人不?我能加到它破产...
  9. 软件测试之图覆盖(作业3)
  10. Mysql5.7及以上版本的MySQL下载、安装及配置教程(附图)
  11. Flutter之播放视频
  12. 基于web的电影院订票系统(毕设系统,到手可用)
  13. python刷课系统教师_让教师只想刷课的继续教育不能继续了
  14. Linux下shell显示用户名和主机名
  15. 调试器GDB的基本使用方法
  16. 第三方登陆--接入谷歌和FaceBook
  17. 问道虚拟服务器,省时省力,让我们直接登陆服务器!
  18. unittest输出测试报告
  19. JavaWbe\Response下载文件\Response验证码练习
  20. selenium驱动新版edge

热门文章

  1. [Go] Template 使用简介
  2. 搭建高可用的redis集群,避免standalone模式带给你的苦难
  3. PHP Uploadify+jQuery.imgAreaSelect插件+AJAX 实现图片上传裁剪 仿微博头像上传功能
  4. core--线程同步(内核模式)
  5. Google Earth 和MS Virtual Earth:虚拟地球简介
  6. 树形控件(CTreeCtrl和CTreeView)
  7. Cacti 使用安装详解-企业级实例
  8. 求二叉树中两个节点的最远距离
  9. AppDelegate.h
  10. Eclipse中的codetemplates.xml