我想了解嵌套列表的理解。 下面我列出了一个列表的理解表达式及其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.
更多推荐
发布评论