扁平化列表理解的结果
在 Python 中,使用列表理解将函数应用于列表的每个元素可能会导致嵌套列表。例如,考虑一个列表 A 和一个将 A 的每个元素转换为列表的函数 f,列表推导式 [f(a) for a in A] 会生成一个列表列表。
要获得一个扁平化的列表,与函数式编程的“flatmap”或 .NET 的“SelectMany”运算符不同,可以将嵌套引入列表理解中:
<code class="python">[filename for path in dirs for filename in os.listdir(path)]</code>
这在功能上相当于以下使用多个嵌套循环的代码:
<code class="python">filenames = [] for path in dirs: for filename in os.listdir(path): filenames.append(filename)</code>
采用这种方法可确保生成一个平面列表,其中通过首先迭代外部列表 dirs 来获取元素,然后将函数 f 返回的内部列表应用于 dirs 中的每个元素。
以上是如何在 Python 中从列表推导式展平嵌套列表?的详细内容。更多信息请关注PHP中文网其他相关文章!