了解嵌套列表的理解(Understanding nested list comprehension)

编程入门 行业动态 更新时间:2024-10-28 02:30:25
了解嵌套列表的理解(Understanding nested list comprehension)

我想了解嵌套列表的理解。 下面我列出了一个列表的理解表达式及其for循环的等价物。 我不知道我的理解是否正确。

例如,

[(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)

如果我可以概括一下,我猜

[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)

我问了一个类似的问题, 等价于循环表达式用于复杂列表的理解 在那里给出的答案在了解了内部的内容之后重建了表单。 我想知道它是如何系统地运作的,所以我可以把这个概念应用到其他稍微变化的例子中。

I want to understand nested list comprehension. Below, I listed a list comprehension expression and their for loop equivalent. I wonder if my understanding is correct on those.

For example,

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

is equivalent to

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)

If I may generalize, I guess

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

form can be translated to the following. (I hope I'm correct on this)

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

For simpler case,

[exp1 for x in xSet for y in ySet]

is equal to

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

whereas,

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

is equal to

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

I asked a similar question on Equivalent for loop expression for complex list comprehension The answers given there reconstruct the form after understanding what it does internally. I'd like to know how it works systematically so I can apply the concept to other slightly varying examples.

更多推荐

本文发布于:2023-08-03 02:18:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1382898.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:嵌套   列表   Understanding   comprehension   list

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!