reverse_list.py

#!/usr/bin/python3
# ===================================================================
# reverse a list
# ===================================================================
#
# other ways:
#
# a. list reverse object method (initial list is modified,
#                                no new list created)
#        lst.reverse()
#
# b. list slicing (original list is not modified, new list created)
#        x = lst.[::-1]
#
# c. use iterator (iterator returned by "reversed")
#        x = list(reversed(lst))
#
# ===================================================================

# -------------------------------------------------------------------
# ---- reverse list
# -------------------------------------------------------------------

def reverse_list(lst):

    i = 0
    j = len(lst) - 1

    if j < 2:
        return lst

    while i != j:

        ##print(f'loop: {lst}')

        lst[i],lst[j] = lst[j],lst[i]

        i += 1
        j -= 1

    return lst

# -------------------------------------------------------------------
# ---- main
# -------------------------------------------------------------------

pi = 3.14159

lst = [0,1,2,'a',4,'z',6,10.02,8,9,pi]

print(lst)
reverse_list(lst)
print(lst)

print(type(lst[0]))
print(id(lst[0]))