python中列表排序的方法

程松 2020-01-01

1、修改原始列表,不建新列表的排序

直接调用列表的sort()方法进行排序

>>> id(a)
2864146375752
>>> a.sort()
>>> a
[5, 10, 20, 30]
>>> id(a)
2864146375752

>>> a.sort(reverse=True)
>>> a
[30, 20, 10, 5]

>>> id(a)
2864146375752

# 打乱顺序

>>> import random
>>> random.shuffle(a)
>>> a
[20, 10, 30, 5]

>>> id(a)
2864146375752

2、创建新的列表,原列表不变

使用内置函数sorted()进行排序

>>> id(a)
2864146375752

>>> a = sorted(a)
>>> a
[5, 10, 20, 30]
>>> id(a)
2864146621960

3、reversed()返回迭代器

内置函数reversed()也支持对列表进行逆序排列,与列表对象方法reverse()不同的是,

内置函数reversed()不对原列表做任何修改,只是返回一个逆序排列的迭代器对象,且该迭代器对象只能使用一次。

>>> c = [20,10,40,4]
>>> a = reversed(c)
>>> a
<list_reverseiterator object at 0x0000029ADC715828>
>>> list(a)
[4, 40, 10, 20]
>>> list(a)
[]

相关推荐