The basic and obligatory purpose of creating a tuple is that it can not be modified. The concept and motive behind tuple creation is to get sturdy solid list which can not be modified by any means; if not so, there is no obligation to use the list instead of tuple. For better understanding lets create a tuple and hit dir(tuple name) e.g.
>> tuply=('me','us','you','them')
>>dir(tuply)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
As you can see we have only two common methods with list, they are count and index. Both the methods are self explanatory and described in here.
Obviously , we can not destroy tuple elements in any way. If we want to keep the tuple we need to keep the contents too. As they say non-modifiable, But!! look there is a first option in the dir(tuply) output, __add__(), is that be used to modify the tuple i.e. by adding new entry to the tuple?
Lets try this -
>> tuply.__add__("all")
Traceback (most recent call last):
File "<pyshell#91>", line 1, in <module>
tuply.__add__('all')
TypeError: can only concatenate tuple (not "str") to tuple
Looks like we have a trace back, So, I need to have to add only tuple to tuple and not a string can be added to the tuple. So lets do this -
>> tuply.__add__(('all'))
This is giving the same traceback; One of the expert told me that there will be a comma after the new entry. So lets give the comma and run it -
>> tuply.__add__(('all',))
('me','us','you','them','all')
Hoops!!!! At last we have successfully modified the tuple entry. But it is really modification of the same tuple or we are destroying the old one and creating a new one? What do you think -let me know by commenting.
We can also add something to the beginning of the tuple in stead of to the last , by doing this - Or, lets join them with 'love' -
>> tuply = ('love',) + tuply
('love','me','us','you','them','all')
Also visit my website www.pythonbeginner.in and subscribe there to get free eBook and online solution to your python related prob;ems.
>> tuply=('me','us','you','them')
>>dir(tuply)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
As you can see we have only two common methods with list, they are count and index. Both the methods are self explanatory and described in here.
Obviously , we can not destroy tuple elements in any way. If we want to keep the tuple we need to keep the contents too. As they say non-modifiable, But!! look there is a first option in the dir(tuply) output, __add__(), is that be used to modify the tuple i.e. by adding new entry to the tuple?
Lets try this -
>> tuply.__add__("all")
Traceback (most recent call last):
File "<pyshell#91>", line 1, in <module>
tuply.__add__('all')
TypeError: can only concatenate tuple (not "str") to tuple
Looks like we have a trace back, So, I need to have to add only tuple to tuple and not a string can be added to the tuple. So lets do this -
>> tuply.__add__(('all'))
This is giving the same traceback; One of the expert told me that there will be a comma after the new entry. So lets give the comma and run it -
>> tuply.__add__(('all',))
('me','us','you','them','all')
Hoops!!!! At last we have successfully modified the tuple entry. But it is really modification of the same tuple or we are destroying the old one and creating a new one? What do you think -let me know by commenting.
We can also add something to the beginning of the tuple in stead of to the last , by doing this - Or, lets join them with 'love' -
>> tuply = ('love',) + tuply
('love','me','us','you','them','all')
Also visit my website www.pythonbeginner.in and subscribe there to get free eBook and online solution to your python related prob;ems.
No comments:
Post a Comment