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)
posted @ 2022-05-17 13:31  测试-小熊  阅读(163)  评论(0)    收藏  举报