lets say we have the following two lists:

```
lst1 = ['a', 'b', 'c', 'd', 'e']
lst2 = ['e', 'd', 'c', 'b', 'a']
```

lst1 is the same as lst2 in reverse. Now we have to express this into code

what we need to do:

- compare first item of lst1 with last item of lst2
- compare second item of lst1 with second to last item of lst2
- …
- compare last item item of lst1 with first item of lst2

(`...`

represents everything in between, i was too lazy to write them all)

this exactly what this if condition does, for the first iteration of the loop, `index`

will be zero, so then we get:

```
if lst1[0] != lst2[len(lst2) - 1 - 0]:
```

lets do the math first, lst2 has a length of 5 (sticking with the example i started this post with). 5 - 1 - 0 is 4, so we get:

```
if lst1[0] != lst2[4]:
```

now we resolve the square brackets, which gives us the values from the lists based on indexes:

```
if 'a' != 'a':
```

these are equal, so the lst1 could still be the same as lst2 in reverse, so we continue to the next iteration of the loop, index has now become `1`

:

```
if lst1[1] != lst2[len(lst2) - 1 - 1]:
# resolving math
if lst1[1] != lst2[3]:
# getting values/resolving square brackets
if 'b' != 'b':
```

these are equal, so the lst1 could still be the same as lst2 in reverse. Here we compared the second value of lst1 with the second to last value of lst2.

This continues until we completed all the elements from the list, or one of the values doesn’t equal, in which case lst1 isn’t the same as lst2 in reverse, in which case we should return False