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使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
在Python中使用mongoengine操作MongoDB教程
Apr 24 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
python 并发编程 多路复用IO模型详解
Aug 20 Python
Python 50行爬虫抓取并处理图灵书目过程详解
Sep 20 Python
Pytorch to(device)用法
Jan 08 Python
使用Puppeteer爬取微信文章的实现
Feb 11 Python
Python tkinter布局与按钮间距设置方式
Mar 04 Python
python利用platform模块获取系统信息
Oct 09 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与MySQL开发的8个技巧小结
2010/12/17 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
PHP实现加强版加密解密类实例
2015/07/29 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
使用js画图之画切线
2015/01/12 Javascript
javascript控制台详解
2015/06/25 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
python面试题之列表声明实例分析
2019/07/08 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
Java面试题:为什么要用Java
2012/05/11 面试题
聚美优品的广告词
2014/03/14 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
刑事附带民事诉讼答辩状
2015/05/22 职场文书
二审答辩状范文
2015/05/22 职场文书