the dot ("access attribute"operator is used to access an object' attributes an attribute can be any kind of objectalthough so far we have shown only method attributes since an attribute can be an object that has attributeswhich in turn can have attributesand so onwe can use as many dot operators as necessary to access the particular attribute we want the list type has many other methodsincluding insert(which is used to insert an item at given index positionand remove(which removes an item at given index position as noted earlierpython indexes are always -based we saw before that we can get characters from strings using the square brackets operatorand noted at the time that this operator could be used with any sequence lists are sequencesso we can do things like thisx ['zebra' - 'aardvark' 'more''extra' [ 'zebrax[ tuples are also sequencesso if had been tuple we could retrieve items using square brackets in exactly the same way as we have done for the list but since lists are mutable (unlike strings and tuples which are immutable)we can also use the square brackets operator to set list elements for examplex[ "forty ninex ['zebra''forty nine'- 'aardvark' 'more''extra'if we give an index position that is out of rangean exception will be raised--we briefly introduce exception-handling in piece # and fully cover exceptions in we have used the term sequence few times nowrelying on an informal understanding of its meaningand will continue to do so for the time being howeverpython defines precisely what features sequence must supportand similarly defines what features sized object must supportand so on for various other categories that data type might belong toas we will see in liststuplesand python' other built-in collection data types are covered in piece # logical operations |one of the fundamental features of any programming language is its logical operations python provides four sets of logical operationsand we will review the fundamentals of all of them here