# [Tutor] Example of good use of enumerate()

Manprit Singh manpritsinghece at gmail.com
Sun Mar 13 07:25:19 EDT 2022

```  Dear Sir,

One can solve it like this also:

lx = [[2, 5, 9, 0],
[3, 8, 1, 5],
[4, 8, 1, 2],
[6, 1, 2, 4],
[3, 1, 6, 7]]

mlen = min(len(lx), len(lx[0]))
for i in range(mlen):
print(lx[i][i])

What do you suggest ?

On Sun, Mar 13, 2022 at 4:44 PM Manprit Singh <manpritsinghece at gmail.com>
wrote:

> Dear Sir,
>
> Consider an example of printing all elements of a principal diagonal of a
> rectangular matrix.
> lx = [[2, 5, 9, 0],
>        [3, 8, 1, 5],
>        [4, 8, 1, 2],
>        [6, 1, 2, 4],
>        [3, 1, 6, 7]]
>
> for i, nlist in enumerate(lx):
>     for j, num in enumerate(nlist):
>         if i==j:
>             print(num)
>
> The above use of enumerate() works well. Another solution is also given
> below:
> for i in range(len(lx)):
>     for j in range(len(lx[0])):
>         if i == j:
>             print(lx[i][j])
> also works, but lots of indexing and other operations don't look good and
> effective to me .
>
> Is there any other better solution other than the first one using
> enumerate() ?
> Is this a valid and preferred use case of using enumerate() function ?
>
> Regards
> Manprit Singh
>
>
>
```