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脚本和ADB命令实现卸载App
Feb 10 Python
老生常谈python之鸭子类和多态
Jun 13 Python
Python中的函数作用域
May 07 Python
linux安装Python3.4.2的操作方法
Sep 28 Python
python3实现小球转动抽奖小游戏
Apr 15 Python
python实现按行分割文件
Jul 22 Python
Django实现web端tailf日志文件功能及实例详解
Jul 28 Python
浅析PEP572: 海象运算符
Oct 15 Python
Python原始套接字编程实例解析
Jan 29 Python
Python:__eq__和__str__函数的使用示例
Sep 26 Python
Numpy数组的广播机制的实现
Nov 03 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 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
DC动漫人物排行
2020/03/03 欧美动漫
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
jquery处理json对象
2014/11/03 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
Python基于select实现的socket服务器
2016/04/13 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
python机器学习之神经网络实现
2018/10/13 Python
对Python实现累加函数的方法详解
2019/01/23 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
电信营业员自我评价分享
2014/01/17 职场文书
《散步》教学反思
2014/03/02 职场文书
代办委托书怎样写
2014/04/08 职场文书
关于安全的标语
2014/06/10 职场文书
中秋晚会策划方案
2014/06/12 职场文书
基层党员对照检查材料
2014/08/25 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
Python - 10行代码集2000张美女图
2021/05/23 Python
通过Python把学姐照片做成拼图游戏
2022/02/15 Python