Python 工匠:案例、技巧与工程实践
朱雷
蓝鲸工具 PaaS 平台负责人
502 人已学习
立即订阅
登录后,你可以任选4讲全文学习
推荐试读
换一换
时长 21:38
免费
课程目录
已完结/共 20 讲
时长 21:38
时长 33:20
时长 24:04
时长 29:57
时长 00:56
时长 00:39
时长 00:36
Python 工匠:案例、技巧与工程实践
15
15
1.0x
00:00/00:00
登录|注册

第 3 章 容器类型(1)

第 3 章 容器类型

在我们的日常生活中,有一类物品比较特别,它们自身并不提供“具体”的功能,最大的用处就是存放其他东西——小学生用的文具盒、图书馆的书架,都可归入此类物品,我们可以统称它们为“容器”。
而在代码世界里,同样也有“容器”这个概念。代码里的容器泛指那些专门用来装其他对象的特殊数据类型。在 Python 中,最常见的内置容器类型有四种:列表、元组、字典、集合。
列表(list)是一种非常经典的容器类型,通常用来存放多个同类对象,比如从 1 到 10 的所有整数:
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
元组(tuple)和列表非常类似,但跟列表不同,它不能被修改。这意味着元组完成初始化后就没法再改动了:
>>> names = ('foo', 'bar')
>>> names[1] = 'x'
...
TypeError: 'tuple' object does not support item assignment
字典(dict)类型存放的是一个个键值对(key: value)。它功能强大,应用广泛,就连 Python 内部也大量使用,比如每个类实例的所有属性,就都存放在一个名为 dict 的字典里:
class Foo:
def __init__(self, value):
self.value = value
foo = Foo('bar')
print(foo.__dict__, type(foo.__dict__))
执行后输出:
{'value': 'bar'} <class 'dict'>
集合(set)也是一种常用的容器类型。它最大的特点是成员不能重复,所以经常用来去重(剔除重复元素):
>>> numbers = [1, 2, 2, 1]
>>> set(numbers)
这四种容器类型各有优缺点,适用场景也各不相同。本章将简单介绍每种容器类型的特点,深入分析它们的应用场景,帮你厘清一些常见的概念。更好地掌握容器能帮助你写出更高效的 Python 代码。

3.1 基础知识

在基础知识部分,我将按照列表、元组、字典、集合的顺序介绍每种容器的基本操作,并在其中穿插一些重要的概念解释。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了 Python 容器类型,包括列表、元组、字典和集合,强调了可变和不可变对象的区别,并介绍了函数调用传参机制。特别详细介绍了元组的特性,包括元组推导式和具名元组的使用方法。对于字典,文章详细介绍了常用操作、遍历、增加和修改操作,以及字典推导式和有序性与无序性的区别。还介绍了集合的特点和常用操作,以及不可变集合 frozenset 的使用方法。此外,文章还介绍了集合运算,包括求交集、并集、差集等操作,并最后介绍了深拷贝与浅拷贝的概念。 通过案例故事展示了如何设计自定义字典类型,利用它重构数据分析脚本。作者设计了一个脚本来分析网站访问日志,将请求数据按路径分组,并根据耗时将其划分为不同的性能等级,从而找到需要优化的页面。作者通过枚举类型和主逻辑实现了数据统计和输出结果。尽管脚本功能正常,但作者认为代码写得不太好,逻辑复杂,存在零碎的字典操作。这个案例故事展示了如何利用 Python 容器类型和自定义数据结构来解决实际问题,为读者提供了实用的技术参考。 总体而言,本文内容丰富,适合读者快速了解 Python 容器类型的特点和使用方法,对于想深入了解 Python 容器类型及其应用的读者具有很高的参考价值。文章通过详细介绍容器类型的特性和案例故事的实际应用,为读者提供了全面的技术知识和实践经验。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 工匠:案例、技巧与工程实践》
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • rs勿忘初心
    3.15这段代码看着不完整? >>> d1 = {'foo': 3, 'bar': 4} >>> {'foo': 30}
    2024-03-21归属地:北京
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部