Hello Tutors, I am having trouble wrapping my mind around nested list comprehensions and am hoping that someone can either verify my thinking or provide insight as to what I am doing wrong.
I have a list of objects C1 and each object in the list has a method m() that will return a list of sub-objects. I would like to create a list that contains all sub-objects of all members of the C1 collection. If I weren't trying to use list comprehensions, I would code this as: result = [] for eachObject in C1: for eachSubObject in eachObject.m(): result.append(eachSubObject) I have looked at the examples in the books several times, but none of the examples on nested list comprehensions show situations where there is a dependency between the outer loop and the inner loop that are being compressed. However, what I think I have come up with is: result = [eachSubObject for eachObject in C1 for eachSubObject in eachObject.m()] I am already expecting the "just use the first syntax if that does what you want" answers - but in this case, I am trying to understand nested list comprehensions, so I would appreciate an explanation of the list comprehension syntax. If this _is_ the correct syntax, this reads very awkwardly to me, and my initial reaction to this is that it should be expressed as: result = [eachSubObject for eachSubObject in eachObject.m() for eachObject in C1] However, in my testing, this doesn't appear to work. If somone has a way of reading the nested list comprehension syntax that makes sense, I would appreciate it if you would share it. Thanks, -John _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor