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压平嵌套列表的简单实现
Jun 08 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
Python实现简单的四则运算计算器
Nov 02 Python
开源Web应用框架Django图文教程
Mar 09 Python
利用python实现简单的循环购物车功能示例代码
Jul 05 Python
在PyCharm导航区中打开多个Project的关闭方法
Jan 17 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
Python双链表原理与实现方法详解
Feb 22 Python
python实现与redis交互操作详解
Apr 21 Python
Python脚本打包成可执行文件过程解析
Oct 20 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 26 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数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
javascript onmouseout 解决办法
2010/07/17 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
python+django加载静态网页模板解析
2017/12/12 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
CentOS7安装Python3的教程详解
2019/04/10 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
python scatter函数用法实例详解
2020/02/11 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
python实现五子棋程序
2020/04/24 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
IRO美国官网:法国服装品牌
2018/03/06 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
房地产还款计划书
2014/01/10 职场文书
创业女性典型材料
2014/05/02 职场文书