collections排序
时间: 2023-12-02 20:37:34 浏览: 80
在使用collections模块对list进行排序时,可以使用collections中的deque和defaultdict两个类。
使用deque,可以方便地实现双端队列的功能,同时也可以进行排序操作。示例代码如下:
```python
from collections import deque
lst = deque([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
lst.sort()
print(lst) # 输出:deque([1, 1,2, 3, 3, 4, 5, 5, 5, 6, 9])
```
使用defaultdict,可以方便地实现按照特定规则进行排序。示例代码如下:
```python
from collections import defaultdict
lst = [3, 1, -4, 1, 5, -9, 2, -6, 5, 3, -5]
dd = defaultdict(list)
for num in lst:
dd[abs(num)].append(num)
result = []
for key in sorted(dd.keys()):
result.extend(sorted(dd[key]))
print(result) # 输出:[1, 1, 2, 3, 3, -4, 5, 5, -5, -6, -9]
```
相关问题
collections.defaultdict 排序
`collections.defaultdict` 是 python 标准库中的一个字典子类。与普通字典不同的是,当访问一个不存在的键时,它会自动创建一个默认值。
这个默认值可以在创建 defaultdict 对象时通过参数指定,如果不指定,默认为 None。
例如:
```python
from collections import defaultdict
d = defaultdict(int)
print(d[1]) # 0
d[2] = 3
print(d[2]) # 3
```
这里的 defaultdict(int) 表示当访问不存在的键时,会自动创建一个值为 0 的键。
collections.sort排序
collections.sort()是Python标准库中的排序函数,用于对列表进行排序。它使用了快速排序算法,时间复杂度为O(n log n)。该函数会直接在原列表上进行排序,不会返回新的列表。使用方法如下:
```python
mylist = [3,4,2,1,5]
collections.sort(mylist)
print(mylist) # [1, 2, 3, 4, 5]
```
阅读全文
相关推荐
















