挑战Python题解-002

2.给你一个list L, 如 L=[2,8,3,50], 对L进行升序排序并输出.
如样例L的结果为[2,3,8,50]

print sorted(L)

讨论区有同学有疑问,下面这段代码系统报错。

L.sort();
print L;

两者的差别如下:

python容器内数据排序:
sort函数:sort是在容器内排序,L是可变对象,L发生变化。
sorted函数:sorted生成一个新的排好序的容器。

sort用法
L.sort()之后的类型为Nonetype:
>>> L = [2,1,3]
>>> type(L.sort())

>>> L = type(L.sort()) # L.sort() 已改变其结构
>>> print L

参考资料:
python的排序函数sort,sorted在列表排序和字典排序中的应用详解和举例

sorted用法
>>> help(sorted)
Help on built-in function sorted in module builtin:

sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --    > new sorted list

reverse参数
>>> sorted(a,reverse = True) #将a从大到小排序,不影响a本身结构

key参数
>>> c =['CCC', 'bb', 'ffff', 'z']
>>> sorted(c,key=len) #按列表的元素的长度排序
['z', 'bb', 'CCC', 'ffff']

参考资料:
Python: sort,sorted,OrderedDict的用法

你可能感兴趣的:(挑战Python题解-002)