美文网首页Python算法题
挑战Python题解-002

挑战Python题解-002

作者: everfight | 来源:发表于2016-08-19 19:07 被阅读71次

    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())
    <type 'NoneType'>
    >>> L = type(L.sort()) # L.sort() 已改变其结构
    >>> print L
    <type 'NoneType'>

    参考资料:
    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

        本文链接:https://www.haomeiwen.com/subject/gswbsttx.html