Update 16-20.Python语言进阶.md

在头尾添加和删除元素是 -> 时
pull/802/head
Hana61 2021-08-08 11:57:43 +08:00 committed by GitHub
parent 1ef5bf058a
commit e646d665af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 2 deletions

View File

@ -85,7 +85,7 @@
常用的工具类:
- `namedtuple`:命令元组,它是一个类工厂,接受类型的名称和属性列表来创建一个类。
- `deque`双端队列是列表的替代实现。Python中的列表底层是基于数组来实现的而deque底层是双向链表因此当你需要在头尾添加和删除元素deque会表现出更好的性能渐近时间复杂度为$O(1)$。
- `deque`双端队列是列表的替代实现。Python中的列表底层是基于数组来实现的而deque底层是双向链表因此当你需要在头尾添加和删除元素deque会表现出更好的性能渐近时间复杂度为$O(1)$。
- `Counter``dict`的子类,键是元素,值是元素的计数,它的`most_common()`方法可以帮助我们获取出现频率最高的元素。`Counter`和`dict`的继承关系我认为是值得商榷的按照CARP原则`Counter`跟`dict`的关系应该设计为关联关系更为合理。
- `OrderedDict``dict`的子类,它记录了键值对插入的顺序,看起来既有字典的行为,也有链表的行为。
- `defaultdict`:类似于字典类型,但是可以通过默认的工厂函数来获得键对应的默认值,相比字典中的`setdefault()`方法,这种做法更加高效。
@ -1394,4 +1394,4 @@ Python中实现并发编程的三种方案多线程、多进程和异步I/O
Python还有很多用于处理并行任务的三方库例如`joblib`、`PyMP`等。实际开发中要提升系统的可扩展性和并发性通常有垂直扩展增加单个节点的处理能力和水平扩展将单个节点变成多个节点两种做法。可以通过消息队列来实现应用程序的解耦合消息队列相当于是多线程同步队列的扩展版本不同机器上的应用程序相当于就是线程而共享的分布式消息队列就是原来程序中的Queue。消息队列面向消息的中间件的最流行和最标准化的实现是AMQP高级消息队列协议AMQP源于金融行业提供了排队、路由、可靠传输、安全等功能最著名的实现包括Apache的ActiveMQ、RabbitMQ等。
要实现任务的异步化,可以使用名为`Celery`的三方库。`Celery`是Python编写的分布式任务队列它使用分布式消息进行工作可以基于RabbitMQ或Redis来作为后端的消息代理。
要实现任务的异步化,可以使用名为`Celery`的三方库。`Celery`是Python编写的分布式任务队列它使用分布式消息进行工作可以基于RabbitMQ或Redis来作为后端的消息代理。