本文档使用大 O 表示法概述了标准 CPython 内置类型的操作时间复杂度,其中 *n* 代表容器大小,*k* 代表输入参数。 * **列表 (Lists):** 访问和追加操作为 $O(1)$。由于元素位移,在列表开头进行插入和删除的操作复杂度为 $O(n)$。排序为 $O(n \log n)$。 * **元组 (Tuples):** 由于不可变,复制操作为 $O(1)$。大多数访问操作与列表类似,但没有修改成本。 * **字典 (Dictionaries) 和集合 (Sets):** 在假设哈希高效的前提下,查找、插入和删除的平均性能为 $O(1)$。在最坏情况下(哈希冲突),性能可能降至 $O(n)$。 * **字符串 (Strings) 和字节串 (Bytes):** 这些不可变序列的长度获取和索引操作为 $O(1)$,搜索和拼接操作为 $O(n)$。`bytearray` 在修改操作上的复杂度与列表类似。 * **内存视图 (Memoryviews):** 允许在不复制的情况下高效访问数据;切片操作为 $O(1)$。 * **范围 (Ranges):** 按需计算值,因此包括索引和成员测试在内的大多数操作复杂度均为 $O(1)$。 **注意:** 这些基准测试专门适用于 CPython。其他实现或对象子类化可能会导致不同的性能情况。性能假设字典和集合键的哈希处理是最佳的。
作者认为,真正的进步往往以既得利益者所产生的仇恨为衡量标准。文章以罗斯福 1936 年对批评者的蔑视为框架,论证了欧盟《通用数据保护条例》(GDPR)之所以成功,恰恰是因为它深受科技行业的厌恶。
常被诟病为官僚主义累赘的“Cookie 横幅”,实际上是一种刻意的设计选择,旨在揭露并限制一个庞大的监控体系。尽管美国评论界将隐私监管斥为阻碍创新的“欧盟奇想”,但现实是 GDPR 已成为全球标准。这种“布鲁塞尔效应”之所以持续存在,是因为欧盟市场对企业而言至关重要,无法被放弃。
作者指出,由于政治腐败、游说活动以及“9·11”事件后“监控资本主义”(即通过挖掘人类经验作为原始数据来牟利)的兴起,美国未能监管本国的科技巨头。在缺乏美国联邦监管的情况下,布鲁塞尔填补了这一空白,以保护基本隐私权。最终,作者预测数据隐私将走上类似安全带和禁铅漆的道路:从不可思议变为必然。