but return single resultsum([ ] any(['spam''''ni']true all(['spam''''ni']false max([ ] min([ ] sum expects numbers only strictly speakingthe max and min functions can be applied to files as well--they automatically use the iteration protocol to scan the file and pick out the lines with the highest and lowest string valuesrespectively (though 'll leave valid use cases to your imagination)max(open('script py')' \nmin(open('script py')'import sys\nline with max/min string value there' one last iteration context that' worth mentioningalthough it' mostly previewin we'll learn that special *arg form can be used in function calls to unpack collection of values into individual arguments as you can probably predict by nowthis accepts any iterabletooincluding files (see for more details on this call syntax for section that extends this idea to generator expressionsand for tips on using the following' print in as usual)def (abcd)print(abcdsep='&' ( & & & (*[ ]unpacks into arguments & & & (*open('script py')iterates by lines tooimport sys &print(sys path& &print( * in factbecause this argument-unpacking syntax in calls accepts iterablesit' also possible to use the zip built-in to unzip zipped tuplesby making prior or nested zip results arguments for another zip call (warningyou probably shouldn' read the following example if you plan to operate heavy machinery anytime soon!) ( ( list(zip(xy)[( )( )zip tuplesreturns an iterable other iteration contexts