then back to tuplereallyboth calls make new objectsbut the net effect is like conversion list comprehensions can also be used to convert tuples the followingfor examplemakes list from tupleadding to each item along the wayt ( [ for in tl [ list comprehensions are really sequence operations--they always build new listsbut they may be used to iterate over any sequence objectsincluding tuplesstringsand other lists as we'll see later in the bookthey even work on some things that are not physically stored sequences--any iterable objects will doincluding fileswhich are automatically read line by line given thisthey may be better called iteration tools although tuples don' have the same methods as lists and stringsthey do have two of their own as of python and --index and count work as they do for listsbut they are defined for tuple objectst ( index( index( count( tuple methods in and later offset of first appearance of offset of appearance after offset how many are thereprior to and tuples have no methods at all--this was an old python convention for immutable typeswhich was violated years ago on grounds of practicality with stringsand more recently with both numbers and tuples alsonote that the rule about tuple immutability applies only to the top level of the tuple itselfnot to its contents list inside tuplefor instancecan be changed as usualt ( [ ] [ 'spamthis failscan' change tuple itself typeerrorobject doesn' support item assignment [ ][ 'spamt ( ['spam' ] this workscan change mutables inside for most programsthis one-level-deep immutability is sufficient for common tuple roles whichcoincidentallybrings us to the next section why lists and tuplesthis seems to be the first question that always comes up when teaching beginners about tupleswhy do we need tuples if we have listssome of the reasoning may be historictuples