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爬虫爬验证码实现功能详解
Apr 14 Python
Django实现的自定义访问日志模块示例
Jun 23 Python
python虚拟环境virtualenv的安装与使用
Sep 21 Python
python实现判断一个字符串是否是合法IP地址的示例
Jun 04 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
python实现滑雪者小游戏
Feb 22 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 Python
Python3自定义json逐层解析器代码
May 11 Python
python pip如何手动安装二进制包
Sep 30 Python
基于Django集成CAS实现流程详解
Nov 28 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
Cannot modify header information错误解决方法
2008/10/08 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
jQuery 动态酷效果实现总结
2009/12/27 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
jquery选择符快速提取web表单数据示例
2014/03/27 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
[49:56]VG vs Optic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
用Python生成器实现微线程编程的教程
2015/04/13 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
python实现批处理文件
2020/07/28 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
电子信息专业自荐书
2014/02/04 职场文书
关于环保的演讲稿
2014/05/10 职场文书
疾病防治方案
2014/05/31 职场文书
服务标语大全
2014/06/18 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
2016十一国庆节慰问信
2015/12/01 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js
nginx优化的六点方法
2021/03/31 Servers
如何用threejs实现实时多边形折射
2021/05/07 Javascript