第2章:序列构成的数组-list.sort 方法和内置函数 sorted

 

list.sort 方法 :

list.sort 方法会就地排序列表,也就是说不会把原列表复制一份。

list.sort 有两个可选参数 keyreverse

reversebool 类型,默认为 False,升序排序;设置为 True 时为降序排序;

key 接受一个只有一个参数的函数,这个函数会被用在序列里的每一个元素上,所产生的结果将是排序算法依赖的对比关键字。

t = [3, 1, 4, 2, 8, 5, 6, 9, 7, 0]

print(id(t))  # 4520988552

# 排序,默认升序
t.sort()  # list.sort() id 不变,不返回值
print(t)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(id(t))  # 4520988552

# 降序排序
t.sort(reverse=True)
print(t)  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
print(id(t))  # 4520988552

l = ['Python', 'Java', 'JavaScript', 'Go']
# 根据每个元素的长度降序排序,也是原地修改
l.sort(key=len, reverse=True)
print(l)  # ['JavaScript', 'Python', 'Java', 'Go']

内置函数 sorted:

与 list.sort 相反的是内置函数 sorted,它会新建一个列表作为返回值。
sorted 可以接受任何形式的可迭代对象作为参数,甚至包括不可变序列或生成器。而不管 sorted 接受的是怎样的参数,它最后都会返回一个列表。

sorted 同样有两个可选参数 keyrevuerse

# 内置函数 sorted 方法会新建一个列表作为返回值,
# 它接受任何可迭代对象作为参数,包括不可变序列和生成器,不管接受的什么都返回一个新的列表;
t = [3, 1, 4, 2, 8, 5, 6, 9, 7, 0]
l = sorted(t, reverse=True)
print(t)  # [3, 1, 4, 2, 8, 5, 6, 9, 7, 0],原列表没发生变化
print(l)  # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

r = ['A', 'Watermelon', 'Banana', 'Apple']
# 根据每个元素的长度进行排序,会返回新列表
j = sorted(r, key=len)
print(r)  # ['A', 'Watermelon', 'Banana', 'Apple']
print(j)  # ['A', 'Apple', 'Banana', 'Watermelon']

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值