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常用内置函数总结
Feb 08 Python
python实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
详解Python2.x中对Unicode编码的使用
Apr 03 Python
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
Dec 21 Python
Python批处理删除和重命名文件夹的实例
Jul 11 Python
详解flask表单提交的两种方式
Jul 21 Python
Python3解释器知识点总结
Feb 19 Python
详解Python实现进度条的4种方式
Jan 15 Python
使用python实现下载我们想听的歌曲,速度超快
Jul 09 Python
Python爬虫实战之爬取携程评论
Jun 02 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 smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
php接口隔离原则实例分析
2019/11/11 PHP
关于使用 jBox 对话框的提交不能弹出问题解决方法
2012/11/07 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
AngularJS快速入门
2015/04/02 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
node.js实现快速截图
2016/08/27 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
从零学Python之入门(二)基本数据类型
2014/05/25 Python
python利用装饰器进行运算的实例分析
2015/08/04 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
python将时分秒转换成秒的实例
2019/12/07 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
你对IPv6了解程度
2016/02/09 面试题
外科实习自我鉴定
2013/10/06 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL