持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情
0 环境
- 编辑器:idea或vscode
- 系统版本:windows10
- python版本:3.9.6
1 前言
之前列表解析式针对一个列表循环,介绍相关的使用,以及一个和多个if组合式的用法。但是我们要是有嵌套列表循环,该怎么处理呢。
2 具体使用
如下:直接这样写,会有报错提示。
当我们遇到双重循环时,用括号包裹住x,y,就会以元组的方式展示。
def mult_list_expr_demo():
lists = [(x, y) for x in range(6) for y in range(6, 11)]
print(lists)
对应的普通写法,现在在写如下的代码,会不会感觉很麻烦和繁琐。
result = []
for x in range(6):
for y in range(6, 11):
result.append((x, y))
print("result --> ", result)
假如再往下还有嵌套的列表,会怎样呢,其实就是在元组中在追加个元素,也就是说:结果为空列表的,要么没有使用for循环语句,或者是说条件判断不符合,产生了无追加元素。当有多层的嵌套(多个for循环语句的嵌套),这种元组存放元素的方法,值得拥有。
3 总结
对于多层嵌套,我们可以用元组的方式接收,还是很方便的,那么什么时候,用列表解析式是比较合理的呢,你看着能用,感觉上比用for语句更加的好,并且没啥问题,你就可以用它替代了。如果对于比较复杂的嵌套循环,多个for语句,或者说循环里逻辑复杂,或者说实现起来麻烦等,你感觉太复杂了,写起来不划算,就用最常规的写法。还有比如你对于多个循环,对它的多个元素的把握,有点有心无力,不确定最终出来的结果,列表解析式就不要用了。定睛看两眼,都瞧不出结果的,最好不要用列表解析式了,列表解析式让我们的代码简洁,方面我们,性能方面也还好,假如你用它反而不如原生的表示的简单,那么请不要在拼命的用列表解析式去解决它,而是用原生的方式,处理它,还是那句话,看情况,哪个方便用哪个。