吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2124|回复: 10
收起左侧

[学习记录] python之列表推导式

[复制链接]
l2430478 发表于 2020-12-31 14:21
本帖最后由 l2430478 于 2020-12-31 14:25 编辑

一.定义

用一行构建代码
例题:

[Python] 纯文本查看 复制代码
1
2
3
4
5
6
# 构建一个1-100的列表
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
# 构建一个列表,要求元素大于4
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(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
缺点:
可读性不高,不好排错。






工作忙,需要抽时间自学,没人指导的日子很难,为自己加油!

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wz959481 发表于 2020-12-31 14:32
不错不错,我也是自学中。继续学习.
dgmgmhjmg 发表于 2020-12-31 15:16
rossi2020 发表于 2020-12-31 15:29
工作忙,需要抽时间自学,没人指导的日子很难,为自己加油!
一米诺 发表于 2020-12-31 15:56
楼主你是看书自学还是看视频教程?
如果是视频教程是哪个版本的?
wblylh 发表于 2020-12-31 19:56
推荐看视频,比看书直观。
hshcompass 发表于 2020-12-31 20:16
放弃学习了,祝努力成功。
寒冰流火 发表于 2021-1-1 13:23
同路人赞一个   老哥强于小弟了   运用熟些   还结合特定的语句方法来用
MOEYU_VANILLA 发表于 2021-1-1 13:32
感谢分享
someone0215 发表于 2021-1-1 17:59
[Python] 纯文本查看 复制代码
1
2
3
4
5
6
7
8
学习了
print([f'python{i}期' for i in range(1, 101)])
# 以 f开头表示在字符串内支持大括号内的python 表达式
#例:import time
# t0 = time.time()
# time.sleep(1)
# name = 'processing'
# print(f'{name} done in {time.time() - t0:.2f} s')
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-4-23 11:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表