#!/usr/bin/env python3

text = "elements of string"
print()
print(text, "  |  ", text[9]+text[10])

print()
print("*********************")
print("iterating over values")
print("*********************")
ABC = ["A", "B", "C"]              # a list
print(ABC)
for strList in ABC:                # iterating over values
  print(strList + "_" + strList)

print()
print("**********************")
print("iterating over indices")
print("**********************")
for iList in range(n:=len(ABC)):   # walrus assignment (of n)
  ABC[iList] = 'new_' + ABC[iList]
print(ABC)
print("length of ABC : ", n)

print()
print("**********************************")
print("iterating over (index,value) pairs")
print("**********************************")
for index, value in enumerate(ABC):  
    print("(", index, "|", value, ")")

print()
print("*************************")
print("using list comprehensions")
print("*************************")
[print(strList) for strList in ABC]
print()

intList = [i for i in range(10)]
print(intList)

oddList = [value*value for value in intList if value%2==1]
print(oddList)

print()
print("*******************")
print("tuples come with ()")
print("*******************")
# tuples are constant collections, viz unchangeable.
fruitTuple = ("apple", "banana", "cherry")
print(fruitTuple)

# would be an erorr
# fruitTuple[0] = "changing something constant"
