Is tuple and list compatible? Normally, you can not add a tuple with a list. e.g. >>> a = [1,2] >>> b = (1,2) >>> c = a + b >>> TypeError! But in this class, a tuple + a list = a list! ??? class inteSet: def __init__(self, *number): self.lst = [1] print type(number) self.lst += number print type(self.lst) def insert(self,e): self.lst.append(e) print self.lst newNum = inteSet(23, 34) newNum.insert(3)
the += operator must iterate over the (right side) expression if it is a sequence - behavior similar to extend ``` >>> a = [1] >>> b = (1,2) >>> a += b >>> a [1, 1, 2] >>> a = a + b Traceback (most recent call last): File "<pyshell#77>", line 1, in <module> a = a + b TypeError: can only concatenate list (not "tuple") to list >>> a.append(b) >>> a [1, 1, 2, (1, 2)] >>> a.extend(b) >>> a [1, 1, 2, (1, 2), 1, 2] >>> ```
You are right. Looks like 'self +=' is more than just 'self = self +' same thing with the operator .iadd - similar to a.externd(b). >>> import operator >>> z = operator.iadd(a, b)
Join our real-time social learning platform and learn together with your friends!