tuple as simple association of objects and list as data structure that changes over time in factthis use of the word "tuplederives from mathematicsas does its frequent use for row in relational database table the best answerhoweverseems to be that the immutability of tuples provides some integrity--you can be sure tuple won' be changed through another reference elsewhere in programbut there' no such guarantee for lists tuples and other immutablesthereforeserve similar role to "constantdeclarations in other languagesthough the notion of constantness is associated with objects in pythonnot variables tuples can also be used in places that lists cannot--for exampleas dictionary keys (see the sparse matrix example in some built-in operations may also require or imply tuples instead of lists ( the substitution values in string format expression)though such operations have often been generalized in recent years to be more flexible as rule of thumblists are the tool of choice for ordered collections that might need to changetuples can handle the other cases of fixed associations records revisitednamed tuples in factthe choice of data types is even richer than the prior section may have implied --today' python programmers can choose from an assortment of both built-in core typesand extension types built on top of them for examplein the prior sidebar "why you will caredictionaries versus listson page we saw how to represent record-like information with both list and dictionaryand noted that dictionaries offer the advantage of more mnemonic keys that label data as long as we don' require mutabilitytuples can serve similar roleswith positions for record fields like listsbob ('bob' ['dev''mgr']bob ('bob' ['dev''mgr']tuple record bob[ ]bob[ ('bob'['dev''mgr']access by position as for liststhoughfield numbers in tuples generally carry less information than the names of keys in dictionary here' the same record recoded as dictionary with named fieldsbob dict(name='bob'age= jobs=['dev''mgr']dictionary record bob {'jobs'['dev''mgr']'name''bob''age' bob['name']bob['jobs'('bob'['dev''mgr']access by key in factwe can convert parts of the dictionary to tuple if needed tuplesfilesand everything else