Given a list of N numbers, use a single list comprehension to produce a new list that only contains those values that are:

(a) even numbers, and

(b) from elements in the original list that had even indices

For example, if `list[2]`

contains a value that is even, that value *should* be included in the new list, since it is also at an even index (i.e., 2) in the original list. However, if `list[3]`

contains an even number, that number should *not* be included in the new list since it is at an odd index (i.e., 3) in the original list.

Answer:

A simple solution to this problem would be as follows

```
[x for x in list[::2] if x%2 == 0]
```

For example, given the following list:

```
# 0 1 2 3 4 5 6 7 8
list = [ 1 , 3 , 5 , 8 , 10 , 13 , 18 , 36 , 78 ]
```

the list comprehension `[x for x in list[::2] if x%2 == 0]`

will evaluate to:

```
[10, 18, 78]
```

The expression works by first taking the numbers that are at the even indices, and then filtering out all the odd numbers.