标签:Python
有时候,我们可能需要使用嵌套列表解析,这相当于Python中的嵌套循环。这种列表解析有时会令人困惑,这里将用几个简单的例子来帮助理解。
简单的列表解析
在Python中,列表解析是仅用一行代码就可编写循环的一种方法。在某些情况下,使用这种方法编写循环不仅很奇特,而且非常方便。
考虑下面的示例,其中使用for循环打印字符串“Python”中的每个字符:
图1
与for循环相同,可以重写为下面的列表解析。注意,列表解析返回一个列表。
图2
下图3将有助于形象化如何构建列表解析。当有疑问时,首先编写常规的for循环,然后使用以下三个简单步骤将其转换为列表解析:
1.创建空列表[]。
2.在空列表中,写下要首先重复的操作。在示例中,是print(i)。
3.在操作后写下for…行。
图3
列表解析总是遵循这样的模式:首先在循环中写入内容,然后是for…行。
注意,从上面的示例中,列表解析输出有一个额外的行[None,None,None,None,None]。这是返回的列表,其中包含六条print()语句。print语句返回None,因此列表中有六个None值。
嵌套的列表解析
嵌套列表解析相当于嵌套循环。让我们看看下面的两层嵌套列表,要使用for循环遍历它,将执行以下操作:
图4
回顾一下如何创建列表解析:
1.在循环中写入内容
2.后跟for…行
因此,两层嵌套列表解析成为:
图5
下图6可视化了这些步骤:
图6
3层嵌套的列表解析
来看一个更复杂的例子,其中有一个3层嵌套列表。
图7
使用列表解析:
图8
同样,下图9将有助于可视化如何构建三层嵌套列表解析。
图9
注:本文学习整理自pythoninoffice.com,供有兴趣的朋友参考。