Question: What is typically regarded as more Pythonic/better/faster to use, the reverse method or the reversed built-in function? 

Both in action:

```
_list = list(xrange(4))

print _list

rlist = list(reversed(_list))

print rlist

_list.reverse()

print _list

```

Answer: 
`foo.reverse()` actually reverses the elements in the container. `reversed()` doesn't actually reverse anything, it merely returns an object that can be used to iterate over the container's elements in reverse order. If that's what you need, it's often faster than actually reversing the elements.
* \_list.reverse() does an in-place reversal and does not return a value
* reversed(\_list) does not change \_list, but returns a reverse iterable
object
* \_list[::-1] does not change \_list, but returns reversed slice

example:

```
_list = [1,2,3]
ret1 = list(reversed(_list))
ret2 = _list[::-1] #reverse order slice
ret3 = _list.reverse() #no value set in ret3
print('ret1,ret2,ret3,_list:',ret1,ret2,ret3,_list)

_list = [1,2,3]
for x in reversed(_list):
    print(x)

```

output:

```
ret1,ret2,ret3,_list: [3, 2, 1] [3, 2, 1] None [3, 2, 1]
3
2
1

```