最佳答案
我想了解嵌套列表内涵。
下面,我列出了一个列表内涵表达式和它们的 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)
我在 等效于复杂列表内涵的回路表达式上也问过类似的问题
那里给出的答案在理解了形式在内部的作用之后重建了形式。
我想知道它是如何系统地工作的,这样我就可以把这个概念应用到其他稍有不同的例子中。