Second list squared each item on list, xs. Running the code below, python gives me ‘None’
xs = [12, 10, 32, 3, 66, 17, 42, 99, 20]
a = [b**2 for b in xs]
c = (a + xs).sort()
print(c, end=', ')
Same list but different code–
xs = [12, 10, 32, 3, 66, 17, 42, 99, 20]
a = [b**2 for b in xs]
c = a + xs
c.sort()
print(c, end=', ')
…python gives me my list(c), all sorted. I don’t get it. Or is there a more pythonic way to do this?
Thanks!
Generally speaking, anything that operates on something in-place will return
None, by convention. (This convention is not necessarily always followed, however.)somelist.sort()will sort the list in-place.If you’d rather have a sorted copy, you can just call
c = sorted(a + xs).sortedoperates on a copy of the original, and therefore returns the copy.There’s a much more through explanation here: http://wiki.python.org/moin/HowTo/Sorting/