I'm working through Mark Lutz's "Python," reviewing the section on lists. I
understand the list comprehension so far, but ran into a snag with the
matrix. I've created the matrix M as follows:
M = [[1, 2, 3[, [4, 5, 6], [7, 8, 9]]
then ran through the various comprehension examples, including:
diag = [M[i][i] for i in [0, 1, 2]]
which, of course, gave me [1, 5, 9].
Then I tried creating revdiag, wanting to return [3, 5, 7], tried several
different ways, never quite got what I was looking for, so I'm looking for
guidance as I'm stuck on this idea. Here's the various attempts I made and
the tracebacks:
>>> revdiag = [M[i][i] for i in [2, 1, 0]]
>>> revdiag
[9, 5, 1]
# once I saw the output, this one made sense to me.
>>> revdiag = [M[i][j] for i in [0, 1, 2] and for j in [2, 1, 0]]
File "<stdin>", line 1
revdiag = [M[i][j] for i in [0, 1, 2] and for j in [2, 1, 0]]
^
SyntaxError: invalid syntax
>>> revdiag = [M[i][j] for i in [0, 1, 2] and j in [2, 1, 0]]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'j' is not defined
>>> revdiag = [M[i][j] for i in [0, 1, 2], for j in [2, 1, 0]]
File "<stdin>", line 1
revdiag = [M[i][j] for i in [0, 1, 2], for j in [2, 1, 0]]
^
SyntaxError: invalid syntax
>>> revdiag = [M[i][j] for i in [0, 1, 2], and for j in [2, 1, 0]]
File "<stdin>", line 1
revdiag = [M[i][j] for i in [0, 1, 2], and for j in [2, 1, 0]]
^
SyntaxError: invalid syntax
I see where the errors are occurring, but I'm not sure I fully understand
why they are occurring or how to get what I'm looking for with what I
presently know, which admittedly is not much. Any help would be appreciated.
regards, Richard
--
quando omni flunkus moritati
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor