list.sort 和 sorted

list.sort 方法会就地排序列表,也就是不会把原来列表复制一份。这也是这个方法返回值是None的原因,提心你本方法不会新建一个列表。

(在这种情况下返回 None 其实是 Python 的一个惯例: 如果一个函数或者方法对对象进行的是就地改动, 那它就应该返回 None, 好让调用者知道传入的参数发生了变动, 而且并未产生新的对象。)

 

    l = [3, 1, 2]
    print(id(l))    # 2078283081672
    print(l.sort()) # None
    print(id(l))    # 2078283081672

 

sorted 会新建一个列表作为返回值。这个方法可以接受任何形式的可迭代对象作为参数, 甚至包括不可
变序列或生成器。

 

不管是 list.sort 方法还是 sorted 函数, 都有两个可选的关键字参数。
reverse
        如果被设定为 True, 被排序的序列里的元素会以降序输出( 也就是说把最大值当作最小值来排序) 。 这个参数的默认值是False。
key
        一个只有一个参数的函数, 这个函数会被用在序列里的每一个元素上, 所产生的结果将是排序算法依赖的对比关键字。 比如说, 在对一些字符串排序时, 可以用 key=str.lower 来实现忽略大小写的排序, 或者是用 key=len 进行基于字符串长度的排序。 这个参数的默认值是恒等函数( identity function) , 也就是默认用元素自己的值来排序。
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值