1 | initial version |

One way you could do this is to use a conditional list comprehension; these take the form

```
[x for x in list if <condition>]
```

And since you will be iterating over a matrix, a *double* list comprehension is in order; these take the form

```
[x for b in a for x in b]
```

where `a`

is the "outer list", and `b`

is the "inner list". And since you want to know the indices and the entries together, we'll use the `enumerate`

function. So here's a conditional double list comprehension which returns `(i,j)`

such that `deg(i,j) == 15`

:

```
sage: [(i,j) for (i,deg_i) in enumerate(deg) for (j,deg_ij) in enumerate(deg_i) if deg_ij == 15]
[(5, 2), (5, 4), (14, 1)]
```

Another Sage-specific data type that might interest you is sets -- these are like lists, but automatically condense duplicate entries. For example, the set of values in the matrix `deg`

can be given by

```
sage: deg_values = set([x for row in deg for x in row])
sage: len(deg_values)
52
```

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.