is and ==
is is identity testing, == is equality testing. what happens in your code would be emulated in the interpreter like this:
>>> a = 'pub'
>>> b = .join(['p', 'u', 'b'])
>>> a == b
True
>>> a is b
False
[1]
Access index in for loop
for idx, val in enumerate(ints):
print(idx, val)
[2]