sort python_python中sort方法

最近学python基础,看了冒泡排序方法,觉得好难,今天看到冒泡排序可以有一个简单的方法,sort(),赶紧百度学习了下,真是方便。

只有列表可以用sort方法,元组不可以使用。

一:两种基本形式

(1) iterable.sort(cmp=None, key=None, reverse=False) #python 2.x

iterable.sort(key=None, reverse=False) #python 3.x

(2) sorted(iterable, cmp=None, key=None, reverse=False) #python 2.x

sorted(iterable, key=None, reverse=False) #python 3.x

# 由此可看出,Python 3.x 取消了 cmp 参数,所以如果想给 sorted()函数传参的话,就剩下key和reverse,其中reverse 就是返回正常排序的反序,

参数解释:

第一个参数是一个iterable,返回值是一个对iterable中元素进行排序后的列表(list)。

可选的参数有三个,cmp、key和reverse。

1)cmp指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数。默认值为None。

2)key指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。

3)reverse是一个布尔值。如果设置为True,列表元素将被倒序排列。

通常来说,key和reverse比一个等价的cmp函数处理速度要快。这是因为对于每个列表元素,cmp都会被调用多次,而key和reverse只被调用一次。

简单实例:

1.原址排序

#sort排序

a = [1, 2, 3, 9, 7, 5, 44, 33, 45, 55, 66, 322, 234, 455, 231]

a.sort()

print(a)

结果如下:

[1, 2, 3, 5, 7, 9, 33, 44, 45, 55, 66, 231, 234, 322, 455]

2.副本排序(a.分片排序)

x = [8, 4, 6, 3, 1]

y = x[:]

y.sort()

print(x) #[8, 4, 6, 3, 1]

print(y) #[1, 3, 4, 6, 8]

b.sorted副本排序

a = [10, 8, 7, 4, 1, 3]

b = sorted(a)

print(a) #[10, 8, 7, 4, 1, 3]

print(b) #[1, 3, 4, 7, 8, 10]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值