吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

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

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

一.定义

用一行构建代码
例题:

[Python] 纯文本查看 复制代码
# 构建一个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] 纯文本查看 复制代码
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] 纯文本查看 复制代码
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] 纯文本查看 复制代码
# 构建一个列表,要求元素大于4
print([i for i in range(11) if i > 4])

# 输出结果:
[5, 6, 7, 8, 9, 10]



练习题
[Python] 纯文本查看 复制代码
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] 纯文本查看 复制代码
学习了
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, 2024-5-6 05:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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