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元祖与字典与集合的粗浅认识
Aug 23 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
python版本的仿windows计划任务工具
Apr 30 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
python 提取key 为中文的json 串方法
Dec 31 Python
PyCharm安装Markdown插件的两种方法
Jun 24 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
Jul 31 Python
python实现的发邮件功能示例
Sep 11 Python
pytorch进行上采样的种类实例
Feb 18 Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 Python
Python urllib2运行过程原理解析
Jun 04 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 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
极典R601SW收音机
2021/03/02 无线电
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
php无序树实现方法
2015/07/28 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
JS处理VBArray的函数使用说明
2008/05/11 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
jquery中选择块并改变属性值的方法
2013/07/31 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
Python获取文件ssdeep值的方法
2014/10/05 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
Python实现接受任意个数参数的函数方法
2018/04/21 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
Python  Django 母版和继承解析
2019/08/09 Python
Python实现数值积分方式
2019/11/20 Python
python 项目目录结构设置
2020/02/14 Python
Python中zip函数如何使用
2020/06/04 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
新奇的小玩意:IWOOT
2016/07/21 全球购物
风险评估实施方案
2014/03/09 职场文书
求职信的正确写法
2014/07/10 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
工作年限证明模板
2015/06/15 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB