I am accessing an element of length 2 tuple by tuple_name[0] but the python interpreter keeps giving me error Index out of bounds.
Here is the code for reference:
def full(mask):
v = True
for i in mask:
if i == 0:
v = False
return v
def increment(mask, l):
i = 0
while (i < l) and (mask[i] == 1):
mask[i] = 0
i = i+1
if i < l:
mask[i] = 1
def subset(X,Y):
s = len(X)
mask = [0 for i in range(s)]
yield []
while not full(mask):
increment(mask, s)
i = 0
yield ([X[i] for i in range(s) if mask[i]] , [Y[i] for i in range(s) if mask[i]])
x = [100,12,32]
y = ['hello','hero','fool']
s = subset(x,y) # s is generator
for a in s:
print a[0] # Python gives me error here saying that index out of
# bounds, but it runs fine if I write "print a".
Changing the final line to simply
print aand running the exact code you’ve pasted above, I get the following output:So, quite clearly, the first iteration is an empty list, so does not have an element 0.