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之大话题小函数(2)
Oct 10 Python
python获取指定目录下所有文件名列表的方法
May 20 Python
Python Django使用forms来实现评论功能
Aug 17 Python
Python读取文件内容的三种常用方式及效率比较
Oct 07 Python
wxPython之解决闪烁的问题
Jan 15 Python
python实现人民币大写转换
Jun 20 Python
自学python的建议和周期预算
Jan 30 Python
Python格式化字符串f-string概览(小结)
Jun 18 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
Python基于DB-API操作MySQL数据库过程解析
Apr 23 Python
利用Python实现某OA系统的自动定位功能
May 27 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
Jun 01 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开发框架总结收藏
2008/04/24 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
一个简单的php路由类
2016/05/29 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
Function.prototype.call.apply结合用法分析示例
2013/07/03 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
理解Javascript闭包
2013/11/01 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
Vue.js动态组件解析
2016/09/09 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
webpack之devtool详解
2018/02/10 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
如何使用Python 打印各种三角形
2019/06/28 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
培训研修方案
2014/06/06 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
假释思想汇报范文
2014/10/11 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
山楂树之恋观后感
2015/06/11 职场文书
教研活动主持词
2015/07/03 职场文书
高中化学教学反思
2016/02/22 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang