list_tests.py

# ===================================================================
# Use del to remove an element by index, pop() to remove it by
# index if you need the returned value, and remove() to delete
# an element by value. The latter requires searching the list,
# and raises ValueError if no such value occurs in the list.
# ===================================================================

lst = [1,2,3,None,'a','b','c',[10,20,20,'a']]


print('--- display list ------------------------------------')
print(lst)


# -- display elements in the list

print('--- display list elements ---------------------------')

for x in lst:
    print('{}  {}'.format(x,type(x)))

print('--- test for element type ---------------------------')

for x in lst:
    if isinstance(x,str):
        print('found element type str')


# --- remove removes the first matching value, not a specific index

print("--- remove 'a' from list ----------------------------")

lst.remove('a')

print(lst)

print("--- remove 'a' from list again ----------------------")

try:
    lst.remove('a')
except Exception as e:
    print('ERROR: {}'.format(e))

print(lst)


# --- del removes a specific index

print('--- del element using index 2 -----------------------')

del lst[2]

print(lst)


# --- pop returns the removed element

print('--- pop [-1] return removed element ----------------')

x = lst.pop(-1)

print(x)
print(lst)