python之列表推导式

1. 定义

用一行构建代码

例题
1# 构建一个1-100的列表 2l1 = [i for i in range(1,101)] 3print(l1) 4 5# 输出结果 6[1,2,3,4,5,6,...100]

2. 两种构建方式

2.1 循环模式: [变量(加工后的变量) for 变量 in iterable]

例题
11.10以内所有整数写入列表 2print([i for i in range(1,11)]) 3# 输出结果 4[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5 62.10以内所有整数的平方写入列表。 7print([i**2 for i in range(1, 11)]) 8 93. 100以内所有的偶数写入列表. 10print([i for i in range(2, 101, 2)]) 11 124. 从python1期到python100期写入列表list 13print([f'python{i}期' for i in range(1, 101)])
练习题
1l1 = [i*i for i in range(1,11)] 2print(l1) 3 4l2 = [i for i in range(1,101) if i % 2 == 0] 5print(l2) 6 7l3 = [f'python{i}期' for i in range(1,101)] 8 9print(l3)

2.2 筛选模式: [变量(加工后的变量) for 变量 in iterable if 条件] 增加一个判断

例题
1# 构建一个列表,要求元素大于4 2print([i for i in range(11) if i > 4]) 3 4# 输出结果: 5[5, 6, 7, 8, 9, 10]
练习题
11. 10以内大于4的数 2 3# print([i for i in range(11) if i > 4]) 4print([i for i in range(1,31) if i % 3 == 0]) 5 6 72. 30以内可以被三整除的数。 8# 过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 9l1 = ['太白金星', 'fdsaf', 'alex', 'sb', 'ab'] 10 11l2 = [i.upper() for i in l1 if len(i) > 3] 12print(l2) 13 14 153. 找到嵌套列表中名字含有两个‘e’的所有名字(有难度) 16names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'], 17 ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']] 18# 方法一: 普通方法 19l4 = [] 20for i in names: 21 for j in i: 22 if j.count('e') >= 2: 23 l4.append(j) 24print(l4) 25 26# 方法二: 列表推导式方法 27print([j for i in names for j in i if j.count('e') >= 2 ])

3. 列表推导式的优缺点

优点:

​ 简单,快捷,装b

缺点:

​ 可读性不高,不好排错

本文转自 https://www.cnblogs.com/zanao/p/11061738.html,如有侵权,请联系删除。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Python3:sqlalchemy对mysql数据库操作,非sql语句

Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''

4cast

4castpackageloadcsv.KumarAwanish发布:2020122117:43:04.501348作者:KumarAwanish作者邮箱:awanish00@gmail.com首页: