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遍历指定文件及文件夹的方法
May 09 Python
Python的装饰器模式与面向切面编程详解
Jun 21 Python
Python实现二叉搜索树
Feb 03 Python
Python 通配符删除文件的实例
Apr 24 Python
Python Dataframe 指定多列去重、求差集的方法
Jul 10 Python
Python中Proxypool库的安装与配置
Oct 19 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
python 3.8.3 安装配置图文教程
May 21 Python
python简单利用字典破解zip文件口令
Sep 07 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 Python
python实现局部图像放大
Nov 17 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中文字符串截断无乱码解决方法
2016/10/10 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
JavaScript日历实现代码
2010/09/12 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
2015/07/17 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
Python计算程序运行时间的方法
2014/12/13 Python
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
Django框架模板用法入门教程
2019/11/04 Python
keras的siamese(孪生网络)实现案例
2020/06/12 Python
Python偏函数实现原理及应用
2020/11/20 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
英文简历中的自荐信范文
2013/12/14 职场文书
办公室前台的岗位职责
2013/12/20 职场文书
在校生自我鉴定
2014/01/23 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
安全伴我行主题班会
2015/08/13 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书