导航

python推导式

Posted on 2022-06-20 19:10  old_dog~  阅读(110)  评论(0)    收藏  举报

python的推导式包括字典、数据、元组、集合推导式。

实现上,一重推导式介绍比较多,二重或者多重几乎没有。

以字典推导式为例,简单的介绍下实现方式:

# @Time : 2022/6/20 17:56 
# @Software: PyCharm


# 1、一重
## 普通方式 tmp_dict = {} for i in range(10): tmp_dict[i] = i
## 推导式 tmp_dict = {i: i for i in range(10)} # 2、两重
## 普通方式 tmp_dict = {} for i in range(3): tmp = {} for j in range(3): tmp[j] = j tmp_dict[i] = tmp ## 推导式 tmp_list = {i: {j: j for j in range(3)} for i in range(3)} # 3、三重
没有必要说了,二重理解,三重也就欧了。

推导式个人感觉分为三个部分:对象类型 + 值表达式 +  循环。以{i: i for i in range(10)}为例:

{}  是对象类型,字典;

i:i 是值表达式,字典的key和value的产生

for i in range(10)是循环。

# 那么,表达式的产生应该是这样理解

# 普通写法
tmp_dict = {}
for i in range(3):
    tmp = {}
    for j in range(3):
        tmp[j] = j
    tmp_dict[i] = tmp

# 1、最外层的一重循环
tmp_list = {i: tmp for i in range(3)} 
# 2、tmp的实现
tmp = {j: j for j in range(3)}
# 3、组合
tmp_list = {i: {j: j for j in range(3)} for i in range(3)}