作者:杨航锋
链接:https://www.zhihu.com/question/57470958/answer/153405326
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

对于列表形如list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]]转化成列表list_2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]的问题。

  1. 一般方法

list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]]list_2 = []for _ in list_1:list_2 += _print(list_2)

结果一截图:

<img src="https://pic2.zhimg.com/50/v2-2e6f47e1cc72f7d934e83526278d8fc1_hd.jpg" data-rawwidth="558" data-rawheight="256" class="origin_image zh-lightbox-thumb" width="558" data-original="https://pic2.zhimg.com/v2-2e6f47e1cc72f7d934e83526278d8fc1_r.jpg">

2. 更Pythonic的方法二,列表推导

list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]][i for k in list_1 for i in k]

结果二截图:

<img src="https://pic1.zhimg.com/50/v2-bc4829f6f3d0dd6bc3e87bebbd219e55_hd.jpg" data-rawwidth="540" data-rawheight="122" class="origin_image zh-lightbox-thumb" width="540" data-original="https://pic1.zhimg.com/v2-bc4829f6f3d0dd6bc3e87bebbd219e55_r.jpg">

3. 抽象用法(知道就好但不推荐哦)

list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]]sum(list_1, [])

结果三截图:

<img src="https://pic2.zhimg.com/50/v2-5399e0c43570833817fdd3420ed4286e_hd.jpg" data-rawwidth="518" data-rawheight="120" class="origin_image zh-lightbox-thumb" width="518" data-original="https://pic2.zhimg.com/v2-5399e0c43570833817fdd3420ed4286e_r.jpg">

解释下Python中sum函数的这种用法:

<img src="https://pic4.zhimg.com/50/v2-5e44edfccdf8ad3c7ce997e9577b5969_hd.jpg" data-rawwidth="769" data-rawheight="284" class="origin_image zh-lightbox-thumb" width="769" data-original="https://pic4.zhimg.com/v2-5e44edfccdf8ad3c7ce997e9577b5969_r.jpg">

如图所示,sum的第一个参数为可迭代对象即可,第二个参数默认为0,但是在上述代码中我改成了空列表,因此sum函数的功能变成[] + i i in iterable(也不知道这么解释看不看的懂哈哈)

列表推导式和sum的用法的更多相关文章

  1. 列表推导式、生成器表达式以及zip()max()max()/min()sum()sort()map()filter()的用法

    列表推导式: 基本格式: variable = [out_exp_res for out_exp in input_list if out_exp == 2] #out_exp_res: 列表生成元素 ...

  2. 转:Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)

    Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...

  3. Python中的join()函数的用法及列表推导式

    [红色为转载后新增部分] 函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join():连接字符串数组.将字符串.元组.列表中的元 ...

  4. Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)

    Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...

  5. Python的列表推导式,字典推导式,集合推导式使用方法

    推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起 ...

  6. 11_Python的列表推导式_Python编程之路

    上一节我们结束了有关python的方法相关内容 这一节我们先来学习python的列表推导式 之前跟大家说过range方法的使用,在这里我就不做过多的解释了,如忘记了,请翻阅之前的介绍 列表推导式,是P ...

  7. python之三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    一 三元表达式.列表推导式.生成器表达式 一 三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(r ...

  8. python基础知识15---三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    阅读目录 一 三元表达式.列表推导式.生成器表达式 二 递归与二分法 三 匿名函数 四 内置函数 五 阶段性练习 一. 三元表达式.列表推导式.生成器表达式 1 三元表达式 name=input('姓 ...

  9. Python_列表推导式_生成器的表达式_各种推导式_40

    列表推导式: #列表推导式: egg_list = [] for i in range(10): egg_list.append('鸡蛋%s'%i) print(egg_list) egon egg_ ...

随机推荐

  1. Unity 常用插件1

    作者:Meta42链接:https://www.zhihu.com/question/29097415/answer/229015898来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  2. Gitlab迁移之数据库报错解决

    Gitlab迁移需同版本迁移,恢复过程会出现如下提示: WARNING:  no privileges were granted for "public" 解决方法: 1. 编辑/ ...

  3. slb

    第一章 弹性负载均衡slb概要介绍 第一讲什么是弹性负载均衡slb 互联网应用的服务扩展   负载均衡诞生 slb的引出 slb产品介绍 负载均衡 server load balancer 是对多台云 ...

  4. Centos7 + Python3.6 + Django + virtualenv + gunicorn + supervisor 环境配置详解

    跟着网上的教程走发现行不通阿!好多都是写个大概,而且每人的环境都是有些许差异的,比如说权限问题阿,等等都会造成安装的失败 说明:本教程在你已经拥有Centos7系统,已经安装好nginx服务器,已经安 ...

  5. 通过ZipKin整理调用链路

    缘由 公司使用的是Docker+微服务,服务拆分差不多41个了,然后过完年来就接到这个需求,把指定业务功能的业务基线整理出来,比如,登录这个操作会经过哪些微服务,把登录这个操作的链条列出来,从api- ...

  6. Shell脚本出现$'\r': command not found

    Centos7下执行shell脚本报错如下 [root@ip---- ~]# sh install_zabbix_agent.sh install_zabbix_agent.: $'\r': comm ...

  7. FileUpload上传

    单文件上传: ASPX: <div> <!-- 文件上传 --> <asp:FileUpload ID="FileUpload1" runat=&qu ...

  8. delphi 多线程之System.TMonitor (续一)

    unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...

  9. update20181214 - uGetHttpData.pas

    function DecodePJItem(sText: string): TList<TDataItem>; var reg: TRegEx; mc: TMatchCollection; ...

  10. BT.656

    转自http://www.cnblogs.com/s_agapo/archive/2012/04/08/2437775.html 凡是做模拟信号采集的,很少不涉及BT.656标准的,因为常见的模拟视频 ...