嵌套列表推导式如何工作:解码结构和功能?

Patricia Arquette
发布: 2024-10-30 06:53:28
原创
816 人浏览过

How do Nested List Comprehensions Work: Decoding the Structure and Functionality?

理解嵌套列表理解

嵌套列表理解提供了一个强大的工具,可以以简洁高效的方式生成复杂的数据结构。为了理解它们的行为,让我们分解它们的结构。

一般语法:

[exp2([exp1 for x in xSet]) for y in ySet]
登录后复制

翻译为扩展循环形式:

result = []
for y in ySet:
    innerResult = []
    for x in xSet:
        innerResult.append(exp1)
    exp2Result = exp2(innerResult)
    result.append(exp2Result)
登录后复制

简化情况:

  • [exp1 for x in xSet for y in ySet]:

    result = []
    for x in xSet:
        for y in ySet:
            result.append(exp1)
    登录后复制
  • [[exp1 for x in xSet] for y in ySet]:

    result = []
    for y in ySet:
        innerResult = []
        for x in xSet:
            innerResult.append(exp1)
        result.append(innerResult)
    登录后复制

示例:

以下嵌套列表理解:

[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]
登录后复制

生成元组列表,其中每个元组包含行列表中所有行中给定列的最小值和最大值。等效的扩展循环形式为:

result = []
for i in range(len(rows[0])):
    innerResult = []
    for row in rows:
        innerResult.append(row[i])
    innerResult2 = []
    for row in rows:
        innerResult2.append(row[i])
    tuple = (min(innerResult), max(innerResult2))
    result.append(tuple)
登录后复制

要点:

  • 最内层循环对应于最内层表达式 (exp1)。
  • 外部循环生成内部循环的输入。
  • 结果是内部表达式结果的列表。
  • 循环的嵌套顺序决定结构

通过理解这种系统方法,您可以将该概念应用于各种列表理解变体。

以上是嵌套列表推导式如何工作:解码结构和功能?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!