python 推导式
python 推导式
推导式介绍:
推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。
Python 支持各种数据结构的推导式:
- 列表(list)推导式
- 字典(dict)推导式
- 集合(set)推导式
- 元组(tuple)推导式
一、列表推导式
需求:返回1-100的所有偶数
方法一:通过以前的方法循环实现
# 返回1-100的所有偶数
# while循环
i = 0
res1 = []
while i <= 100:
if i % 2 == 0:
res1.append(i)
i += 1
print("res1的值为:", res1)
# for 循环
res = []
for i in range(1, 101):
if i % 2 == 0:
res.append(i)
print(res)
方法二:使用列表推导式
# 列表推导式 列表解析
# print([i for i in range(1, 101) if i % 2 == 0])
# 练习
print(["第" + str(i) + "题" for i in range(1, 10)])
print([f"第{i}题" for i in range(1, 10)])
二、字典推导式
需求:解析cookie的值,使得cookie值变为 { key : value } 格式
方法一:通过for方法实现
# 字典的解析
cookie = "rememberMe=true; jenkins-timestamper-offset=-28800000; username=Admin123; " \
"password=bV20PE+Yc97gTHFulwksGA3CMiTC1IBUFUfy7thyETb2nw3wnApW5KU4HWnyNicTYB9J7SFRVQIuKVpYNt+/zw==; " \
"Admin-Token=eyJhbGciOiJIUzUxMiJ9" \
".eyJsb2dpbl91c2VyX2tleSI6IjllOTRhNmQzLWJiMTMtNDczMS1hMzBlLTBiOWRmYjdhOTBiOSJ9.OLAXY7ZlKcO" \
"-9O3aZbugmj3EpRyPZDlCE3EL3dOHWBOeeJcfUfaQbI7xGC287URgnOzHuZ4bZ2Lv5PPVaNT0Hw"
# cookie格式: key=value; key1=value1;
# cookie转换后的格式: {key:value, key1:value1}
new_cookie = {}
for item in cookie.split(";"): # 先用;分割cookie
s = item.split("=") # 用 = 分割
new_cookie[s[0]] = s[1] # 左边作为key,右边作为值,添加到new_cookies中去
print(new_cookie)
方法二:使用字典推导式
# 字典推导式 字典解析
print({item.split("=")[0]: item.split("=")[1] for item in cookie.split(";")})
# 简单练习
print({i:i+1 for i in range(1,10)})
三、集合推导式
# 计算数字1,2,3的平方数
print({i**2 for i in (1,2,3)})
四、元组推导式
元组推导返回的结果是一个生成器对象
a = (x for x in range(1,10))
print(a) # 返回的是生成器对象
# 结果:<generator object <genexpr> at 0x7faf6ee20a50>
print(tuple(a)) # # 使用 tuple() 函数,可以直接将生成器对象转换成元组
# 结果:(1, 2, 3, 4, 5, 6, 7, 8, 9)

浙公网安备 33010602011771号