首页 >后端开发 >Python教程 >如何将嵌套列表推导式转换为 Python 中的等效 for 循环?

如何将嵌套列表推导式转换为 Python 中的等效 for 循环?

DDD
DDD原创
2024-10-29 07:35:02289浏览

How can I translate nested list comprehensions into equivalent for loops in Python?

理解嵌套列表推导式

嵌套列表推导式提供了一种简洁而强大的方法来转换和组合 Python 中的数据结构。基本语法是将多个 for 表达式括在方括号内,每个 for 表达式括在自己的一组圆括号内。

转换为等效的 For 循环

To了解嵌套列表推导式,将它们转换为等效的 for 循环形式会很有帮助。考虑这个例子:

[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]

这可以表示为 for 循环,如下所示:

result = []
for i in range(len(rows[0])):
  inner_result = []
  for row in rows:
    inner_result.append(row[i])
  inner_result2 = []
  for row in rows:
    inner_result2.append(row[i])
  tuple = (min(inner_result), max(inner_result2))
  result.append(tuple)

概括模式

以上示例遵循一般模式:

[exp2([exp1 for x in xSet]) for y in ySet]

等效 for 循环:

result = []
for y in ySet:
  inner_result = []
  for x in xSet:
    inner_result.append(exp1)
  exp2_result = exp2(inner_result)
  result.append(exp2_result)

其他示例

  • [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 = [];对于 ySet 中的 y:inner_result = [];对于 xSet 中的 x:inner_result.append(exp1); result.append(inner_result)

以上是如何将嵌套列表推导式转换为 Python 中的等效 for 循环?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn