当前位置:
首页 > Python基础教程 >
-
python之列表推导式的用法
这篇文章主要介绍了python之列表推导式的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
- 定义
用一行构建代码
例题
# 构建一个1-100的列表
l1 = [i for i in range(1,101)]
print(l1)
# 输出结果
[1,2,3,4,5,6,...100]
- 两种构建方式
2.1 循环模式: [变量(加工后的变量) for 变量 in iterable]
例题
- 将10以内所有整数写入列表
print([i for i in range(1,11)])
# 输出结果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- 将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]
练习题
- 10以内大于4的数
# print([i for i in range(11) if i > 4])
print([i for i in range(1,31) if i % 3 == 0])
- 30以内可以被三整除的数。
# 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母
l1 = ['太白金星', 'fdsaf', 'alex', 'sb', 'ab']
l2 = [i.upper() for i in l1 if len(i) > 3]
print(l2)
- 找到嵌套列表中名字含有两个‘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 ])
-
列表推导式的优缺点
优点:
简单,快捷,装b
缺点:
可读性不高,不好排错
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
原文链接:https://www.cnblogs.com/zanao/p/11061738.html
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
开启SQLSERVER数据库缓存依赖优化网站性能
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比