好友
阅读权限30
听众
最后登录1970-1-1
|
本帖最后由 l2430478 于 2020-12-31 14:25 编辑
一.定义
用一行构建代码
例题:
[Python] 纯文本查看 复制代码 1 2 3 4 5 6 | l1 = [i for i in range ( 1 , 101 )]
print (l1)
[ 1 , 2 , 3 , 4 , 5 , 6 ,... 100 ]
|
二. 两种构建方式
2.1 循环模式: [变量(加工后的变量) for 变量 in iterable]
例题
[Python] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 | 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 )])
|
练习题
[Python] 纯文本查看 复制代码 1 2 3 4 5 6 7 8 9 | 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 筛选模式: [变量(加工后的变量)
例题
[Python] 纯文本查看 复制代码 1 2 3 4 5 | print ([i for i in range ( 11 ) if i > 4 ])
[ 5 , 6 , 7 , 8 , 9 , 10 ]
|
练习题
[Python] 纯文本查看 复制代码 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 1. 10 以内大于 4 的数
print ([i for i in range ( 1 , 31 ) if i % 3 = = 0 ])
2. 30 以内可以被三整除的数。
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
缺点:
可读性不高,不好排错。
工作忙,需要抽时间自学,没人指导的日子很难,为自己加油! |
|