列表推导
特点
- 优点:代码缩减,不需要新建空列表,内置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])