Je veux comprendre la liste imbriquée compréhension.
Ci-dessous, j'ai énuméré une liste en compréhension de l'expression et de leur boucle équivalent.
Je me demande si ma compréhension est correcte sur ceux-ci.
Par exemple,
[(min([row[i] for row in rows]),max([row[i] for row in rows]))
for i in range(len(rows[0]))]
est équivalent à
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)
Si je peut généraliser, je suppose
[exp2([exp1 for x in xSet]) for y in ySet]
formulaire peut être traduit de la manière suivante. (J'espère que je suis correct sur ce sujet)
result=[]
for y in ySet:
innerResult =[]
for x in xSet:
innerResult.append(exp1)
exp2Result = exp2(innerResult)
result.append(exp2Result)
Pour les cas plus simple,
[exp1 for x in xSet for y in ySet]
est égal à
result=[]
for x in xSet:
for y in ySet:
result.append(exp1)
considérant que,
[[exp1 for x in xSet] for y in ySet]
est égal à
result=[]
for y in ySet:
innerResult=[]
for x in xSet:
innerResult.append(exp1)
result.append(innerResult)
J'ai posé une question similaire sur un équivalent pour la boucle de l'expression complexe de compréhension de liste
Les réponses données, il y reconstruire la forme après la compréhension de ce qu'il fait à l'interne.
Je voudrais savoir comment il fonctionne systématiquement afin que je puisse appliquer le concept à d'autres légèrement différents exemples.