列表推导式介绍

列表推导式是Python中快速创建列表的一种方式。

之前我们要创建(Python3中)一个元素是0~9的列表,我们可能会像下面这么写:

>>> list(range(10))

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

复制代码

这么写没毛病,但是如果要稍微复杂一点的需求可能就有点棘手了,比如:

把列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]中的每个元素都加100,生成一个新列表,这要怎么写呢?

一级学徒可能会这么写:

>>> list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> list2 = []

>>> for i in list1:

... list2.append(i+100)

...

>>> list2

[100, 101, 102, 103, 104, 105, 106, 107, 108, 109]

复制代码二级学徒可能会这么写:

>>> list2 = list(map(lambda i:i+100, list1))

>>> list2

[100, 101, 102, 103, 104, 105, 106, 107, 108, 109]

复制代码

注意: Python3中map函数返回的是一个迭代器,需要转成list类型。

高级学徒可能会这么写:

>>> list2 = [i+100 for i in list1]

>>> list2

[100, 101, 102, 103, 104, 105, 106, 107, 108, 109]

复制代码

好啦,这第三种写法就是今天我们要讲的列表推导式。

接下来我们看一下,列表推导式的语法规范是什么,看下图:

列表推导式练习

只有输出表达式和输入序列的基本列表推导式

>>> list1 = [1, 2, 3]

>>> [x*10 for x in list1] # 把list1中的每个元素乘以10

[10, 20, 30]

复制代码

带有条件判断的列表推导式

>>> list1 = [1, 2, 3]

>>> [x*10 for x in list1 if x%2!=0] # 把list1中的每个不能被2整除的元素乘以10

[10, 30]

复制代码

多个输入序列的列表推导式

>>> list1 = ["A", "B", "C"]

>>> list2 = ["X", "Y", "Z"]

>>> [x+y for x in list1 for y in list2] # 把list1和list2中的元素进行拼接

['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

复制代码

注意:使用列表推导式生成的列表虽然十分方便,但是它生成的列表的所有元素会直接在内存中生成,当你要生成的列表元素个数十分巨大的时候,要注意小心你的内存。

python列表推导式生成随机数_python列表推导式相关推荐

  1. python列表推导式生成随机数_Python:列表推导式/生成器推导式

    一,列表推导式和生成器表达式 l = [i for i in range(10)] print(l) l1 = ['选项%s'%i for i in range(10)] print(l1) 1.把列 ...

  2. python列表推导式生成随机数_python 【迭代器 生成器 列表推导式】

    python [迭代器  生成器  列表推导式] 一.迭代器 1.迭代器 如何从列表.字典中取值的 index索引 ,key for循环 凡是可以使用for循环取值的都是可迭代的 可迭代协议 :内部含 ...

  3. Python中random模块生成随机数详解

    Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...

  4. python列表生成字典_Python 列表生成式 字典生成式

    Python 列表生成式 & 字典生成式 通过生成式可以更加简洁地生成列表和字典 列表生成式 对比 直接生成数据后加入列表示例: user_list = list() for i in ran ...

  5. python随机数生成并排序_python_生成随机数与列表排序

    1.  列表排序可采用两种方法 sorted(list) 直接改变list 调用list的方法 list.sort 2. random.randint(a,b) 生成大于等于a小于等于b的整数 ran ...

  6. python生成随机数列表并排序_python_生成随机数与列表排序

    1.  列表排序可采用两种方法 sorted(list) 直接改变list 调用list的方法 list.sort 2. random.randint(a,b) 生成大于等于a小于等于b的整数 ran ...

  7. python列表元素零的移动_python列表多行

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 这个列表推导式共有145列: memberdef_list = and std: ...

  8. python列表使用技巧与方法_Python列表的相关操作与方法

    Python列表的相关操作与方法 1.列表 why:int.bool.str存在缺陷 str:存储少量的数据:所有的操作获取的内容都是 str类型,存储的数据类型单一. what: 列表可以承载任意数 ...

  9. python如何生成随机数_python如何生成随机数

    如果你对在Python生成随机数与random模块中最常用的几个函数的关系与不懂之处,下面的文章就是对Python生成随机数与random模块中最常用的几个函数的关系,希望你会有所收获,以下就是这篇文 ...

最新文章

  1. 为什么谐振时电抗为0_变频串联谐振试验装置的接线原理
  2. 010_Redis的发布和订阅
  3. unbantu上python安装步骤_如何在Ubuntu中安装Python 3.6?
  4. 正确地kill java历程
  5. netty websocket 简单消息推送demo
  6. 写给小白的机器学习之数据表示与特征工程详解(附实战代码)
  7. 设计模式---创建型模式
  8. linux命令:常用shell命令及应用
  9. 中国为什么不能成为国际数据中心枢纽
  10. Adobe Reader X 10.1.0
  11. 传奇gom引擎架设教程
  12. MongoDB的一些基本使用
  13. 积分专题笔记-曲线面积分三大公式
  14. 大学毕业4年-回顾和总结(3)-投资理财观-图穷而真相现
  15. 1945-计算弹跳高度
  16. python 列表写入excel_Python读写excel表格的方法一
  17. 系统扫描修复cmd命令
  18. window系统下安装VS(Microsoft Visual Studio),及Visual Studio使用教程
  19. 不会搭建Android知识框架,活该你成不了技术大牛!
  20. Simultaneous Feature Learning and Hash Coding with Deep Neural Networks

热门文章

  1. python调用openpyxl包操作excel文件
  2. Docker三剑客之swarm
  3. away3d 4x的阴影方法们
  4. ESP32与Xbox手柄的UART通信测试,基于Arduino框架和pyserial+pygame
  5. Mac rar文件解压
  6. 思科Catalyst 9K
  7. 如何制作一张自动汇总表格,搞定所有Excel表格数据汇总问题
  8. Springboot启动都做了些什么
  9. chrome调用本地摄像头
  10. 问财同花顺spider(爬虫)2接上篇没有实现的页面滚动问题