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进阶教程之词典、字典、dict
Aug 29 Python
python中的函数用法入门教程
Sep 02 Python
python实现无证书加密解密实例
Oct 27 Python
Python实现控制台进度条功能
Jan 04 Python
解决matplotlib库show()方法不显示图片的问题
May 24 Python
对python dataframe逻辑取值的方法详解
Jan 30 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 Python
如何在Python中创建二叉树
Mar 30 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
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
PHP实现的ID混淆算法类与用法示例
2018/08/10 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
Python类属性与实例属性用法分析
2015/05/09 Python
Python定时执行之Timer用法示例
2015/05/27 Python
python matplotlib画图实例代码分享
2017/12/27 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
python入门之基础语法学习笔记
2020/02/08 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
毕业生求职的求职信
2013/12/05 职场文书
英语专业学生的自我评价
2013/12/30 职场文书
单身申明具结书
2015/02/26 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
详解Node.js如何处理ES6模块
2021/05/15 Javascript
ES6 解构赋值的原理及运用
2021/05/25 Javascript
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技