both sides of this statement are tuplesbut the left side is tuple of variablesthe right side is tuple of expressions each value on the right side is assigned to its respective variable on the left side all the expressions on the right side are evaluated before any of the assignments the number of variables on the left and the number of values on the right must be the sameab valueerrortoo many values to unpack more generallythe right side can be any kind of sequence (stringlistor tuplefor exampleto split an email address into user name and domainyou could writeaddr 'monty@python orgunamedomain addr split('@'the return value from split is list with two elementsthe first element is assigned to unamethe second to domain print(unamemonty print(domainpython org dictionaries and tuples dictionaries have method called items that returns list of tupleswhere each tuple is key-value paird {' ': ' ': ' ': list( items()print( [(' ' )(' ' )(' ' )as you should expect from dictionarythe items are in no particular order howeversince the list of tuples is listand tuples are comparablewe can now sort the list of tuples converting dictionary to list of tuples is way for us to output the contents of dictionary sorted by keyd {' ': ' ': ' ': list( items() [(' ' )(' ' )(' ' ) sort( [(' ' )(' ' )(' ' )the new list is sorted in ascending alphabetical order by the key value