用法:
a = sorted(a)
sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
a.sort()
a.sort(*, key=None, reverse=False)
Stable sort *IN PLACE*. #表示直接修改a
举几个例子:
a = [5,3,1,4,2]
a1 = sorted(a)
print('sorted: a:{},a1:{}'.format(a,a1))
a.sort()
print('sort: a:{}'.format(a))
输出:
sorted: a:[5, 3, 1, 4, 2],a1:[1, 2, 3, 4, 5]
sort: a:[1, 2, 3, 4, 5]
可以看出sorted并不会改变原来的列表,会返回一个新的列表;而sort会只改变原来的列表,没有返回值。
几种逆序的方法:
a = [1,2,3,4,5]
a1 = a[::-1]
print('逆序结果a1:{},a:{}'.format(a1,a))
a2 = sorted(a,reverse=True)
print('逆序结果a2:{},a:{}'.format(a2,a))
a.sort(reverse=True)
print('a:{}'.format(a))
输出:
逆序结果a1:[5, 4, 3, 2, 1],a:[1, 2, 3, 4, 5]
逆序结果a2:[5, 4, 3, 2, 1],a:[1, 2, 3, 4, 5]
a:[5, 4, 3, 2, 1]
但当a为字符串时,这几种方法得到的结果不同:
a = '6284351'
sorted(a),a[::-1]
输出:
(['1', '2', '3', '4', '5', '6', '8'], '1534826')
#报错
a.sort()
输出:
AttributeError: 'str' object has no attribute 'sort'