On 25/10/2013 08:20, #PATHANGI JANARDHANAN JATINSHRAVAN# wrote: > Hello All, > >>Similarly, if you call sorted() on a list of large strings, > you get a new list, but the strings are not duplicated, so it's not > nearly the duplication it might look like. > > 1. Sorry, but I did not understand the above point. >
For example, if you have a list of 100 strings, each 1000 bytes long, the total size of the list is 100,400+ bytes. If you make a new list, by using sorted_list = sorted(mylist) The new one is roughly 400+ bytes, since it doesn't make copies of any of the strings. (The + is intended to represent the overhead, which in some cases is substantial. And the factor of 4 is assuming a 32bit Python implementation) > > 2. My interpretation of your answer is that the stack memory in Python holds > only pointers that hold references to data on the heap. Is this correct? > > 3. Also, when you spoke about the second type of variable lifetime in C, did > you mean the local scope of a variable like: > > int func(){ > int a = 5; > printf("a"); > return 0; > } > Here were you talking about 'a' which is removed from the stack when it goes > out of scope? > Variable a is an auto variable, created on the stack when the function is entered, and removed when the function returns. -- Signature file not found _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor