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 24 Python
Python中__new__与__init__方法的区别详解
May 04 Python
Python设计模式之抽象工厂模式
Aug 25 Python
python3结合openpyxl库实现excel操作的实例代码
Sep 11 Python
python多线程实现TCP服务端
Sep 03 Python
Python操作SQLite/MySQL/LMDB数据库的方法
Nov 07 Python
python模拟点击网页按钮实现方法
Feb 25 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
django 扩展user用户字段inlines方式
Mar 30 Python
python获取linux系统信息的三种方法
Oct 14 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 Python
如何在Python项目中引入日志
May 31 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方法调用模式与函数调用模式简例
2011/09/20 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
我也种棵OO树JXTree[js+css+xml]
2007/04/02 Javascript
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
jQuery1.9+中删除了live以后的替代方法
2016/06/17 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
JS实现简单省市二级联动
2019/11/27 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
Python中asyncore的用法实例
2014/09/29 Python
zookeeper python接口实例详解
2018/01/18 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
python使用插值法画出平滑曲线
2018/12/15 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
python几种常用功能实现代码实例
2019/12/25 Python
pycharm快捷键汇总
2020/02/14 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
财务支持类个人的自我评价
2014/02/14 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
美容院员工规章制度
2015/08/05 职场文书
商务信函英语问候语
2015/11/10 职场文书
导游词之无锡梅园
2019/11/28 职场文书