python之列表推导式的用法


Posted in Python onNovember 29, 2019

1. 定义

用一行构建代码

例题

# 构建一个1-100的列表
l1 = [i for i in range(1,101)]
print(l1)

# 输出结果
[1,2,3,4,5,6,...100]

2. 两种构建方式

2.1 循环模式: [变量(加工后的变量) for 变量 in iterable]

例题

1. 将10以内所有整数写入列表

print([i for i in range(1,11)])
# 输出结果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

2. 将10以内所有整数的平方写入列表。

print([i**2 for i in range(1, 11)])

3. 100以内所有的偶数写入列表.

print([i for i in range(2, 101, 2)])

4. 从python1期到python100期写入列表list

print([f'python{i}期' for i in range(1, 101)])

练习题

l1 = [i*i for i in range(1,11)]
print(l1)

l2 = [i for i in range(1,101) if i % 2 == 0]
print(l2)

l3 = [f'python{i}期' for i in range(1,101)]

print(l3)

2.2 筛选模式: [变量(加工后的变量) for 变量 in iterable if 条件] 增加一个判断

例题

# 构建一个列表,要求元素大于4
print([i for i in range(11) if i > 4])

# 输出结果:
[5, 6, 7, 8, 9, 10]

练习题

1. 10以内大于4的数

# print([i for i in range(11) if i > 4])
print([i for i in range(1,31) if i % 3 == 0])

2. 30以内可以被三整除的数。

# 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
l1 = ['太白金星', 'fdsaf', 'alex', 'sb', 'ab']

l2 = [i.upper() for i in l1 if len(i) > 3]
print(l2)

3. 找到嵌套列表中名字含有两个‘e'的所有名字(有难度)

names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
     ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
# 方法一: 普通方法
l4 = []
for i in names:
  for j in i:
    if j.count('e') >= 2:
      l4.append(j)
print(l4)

# 方法二: 列表推导式方法
print([j for i in names for j in i if j.count('e') >= 2 ])

3. 列表推导式的优缺点

优点:
​ 简单,快捷,装b

缺点:
​ 可读性不高,不好排错

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python简单的实现树莓派的WEB控制
Feb 18 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
Python使用sqlalchemy模块连接数据库操作示例
Mar 13 Python
python实现广度优先搜索过程解析
Oct 19 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
如何使用Python多线程测试并发漏洞
Dec 18 Python
pytorch 数据处理:定义自己的数据集合实例
Dec 31 Python
Python类的动态绑定实现原理
Mar 21 Python
python实现梯度法 python最速下降法
Mar 24 Python
Python函数中的不定长参数相关知识总结
Jun 24 Python
python神经网络学习 使用Keras进行简单分类
May 04 Python
python 实现方阵的对角线遍历示例
Nov 29 #Python
python 实现一个反向单位矩阵示例
Nov 29 #Python
python 实现矩阵填充0的例子
Nov 29 #Python
python循环嵌套的多种使用方法解析
Nov 29 #Python
python写一个随机点名软件的实例
Nov 28 #Python
关于Python-faker的函数效果一览
Nov 28 #Python
python 监测内存和cpu的使用率实例
Nov 28 #Python
You might like
PHP 面向对象 final类与final方法
2010/05/05 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
JavaScript浏览器选项卡效果
2010/08/25 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
Vue2.0 组件传值通讯的示例代码
2017/08/01 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
jQuery NProgress.js加载进度插件的简单使用方法
2018/01/31 jQuery
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
JavaScript Date对象功能与用法学习记录
2020/04/28 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
Python 26进制计算实现方法
2015/05/28 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
python生成密码字典的方法
2018/07/06 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
详解Python yaml模块
2020/09/23 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
python 解决函数返回return的问题
2020/12/05 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
教师年度考核自我鉴定
2014/01/19 职场文书
经营理念口号
2014/06/21 职场文书
小学教育见习报告
2014/10/31 职场文书
领导干部学习心得体会
2016/01/23 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
在 Python 中利用 Pool 进行多线程
2022/04/24 Python