Skip to main content

列表推导

特点

  • 优点:代码缩减,不需要新建空列表,内置append方法
  • 缺点:不易于阅读,如果是处理复杂流程,不应使用

基础语法

# 传统写法
new_list = []
for each_item in data:
new_list.append(func(data))

# 推导写法
new_list = [func(data) for each_item in data]

配合条件语句

  • 案例1
# 原生写法
res_list = []
for each in ["string", "int", "float", "params"]:
each_res = return_list(each)
res_list.append(each_res)

# 将列表展开,组成新的单层列表
res = []
for each in res_list:
if len(each) > 0:
res += each


# 推导写法
res = [
each for each in ["string", "int", "float", "params"]
for res in return_list(each)
if len(res)>0
]

# 多层写法

def find_mxd_files(directory):
# 使用列表推导来查找.mxd文件并返回列表
mxd_files = [os.path.join(root, file) for root, _, files in os.walk(directory)
  • 案例2
te = [1, 2, 3]
print([e for e in te if e != 2])