理解嵌套列表理解
嵌套列表理解提供了一个强大的工具,可以以简洁高效的方式生成复杂的数据结构。为了理解它们的行为,让我们分解它们的结构。
一般语法:
[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)
要点:
通过理解这种系统方法,您可以将该概念应用于各种列表理解变体。
以上是嵌套列表推导式如何工作:解码结构和功能?的详细内容。更多信息请关注PHP中文网其他相关文章!