第四章 介绍Python对象类型(2)

列表

列表是ython提供的最通用的序列。是一个任意类型的对象的位置相关的有序集合,可变。

序列操作

列表是序列的一种,支持所有字符串相关操作——索引、切片

特定类型的操作

  • python中列表相较于其他语言中数组的最大区别——没有固定类型的约束,支持一个列表内包含多种类型
  • 列表没有固定大小,能按照需要增加/减少
  • append——尾部增加一位
  • del/pop——移除给定索引处的数据
  • insert——任意位置插入
  • remove——按照值移除
  • extend——尾部增加多位
  • 以上操作会在原位置改变列表对象,而不是新建一个列表——可变性
  • sort——列表排序,默认升序
  • reverse——列表翻转

边界检查

越界会报错

嵌套

python核心数据类型支持任意嵌套——任意组合、多个层次

一个直接应用——矩阵的实现

推导

全称为列表推导表达式

列表推导创建了新的列表作为结果,但是能够在任何可迭代对象上进行迭代;例如

列表推导也可以用来创建产生所需结果的生成器

也支持用来创建集合和字典:

字典

字典不是序列,而是一种映射;

映射同样是一个其他对象的集合,但是是通过键而不是相对位置来存储对象的;实际上,映射并没有维护任何可靠的从左至右的顺序,只是简单地将键映射到相应的值上。

字典是python核心对象集合中唯一的一种映射类型,也具有可变性

映射操作

键:值

可以通过键来对字典进行索引操作;字典的索引操作使用的是和序列相同的语法,但是在方括号中的元素是键,而不是相对位置。

不同的创建字典的方法:

字典也可以用来代替搜索操作,通过键来索引一个字典往往是python中编写搜索的最快方法

字典的键从左到右的顺序是被打乱的,亦即映射不是按照位置排序的

重访嵌套

支持如下的灵活使用

在CPython中,一旦一个对象的最后一次引用被移除,空间将会立即回收

不存在的键:if操作

支持通过方法调用进行指定类型的操作

  • 支持不存在的键,直接赋值
  • 支持in判断是否存在

键的排序:for循环

字典不是序列,不包含任何可靠的从左至右的顺序

如果需要强调顺序,

  1. 可以将keys放入list中,对list进行排序、依次调用key-value
  2. sorted函数

迭代和优化

for循环、列表推导表达式,都是一种通用迭代工具

任何一个从左到右扫描一个对象的Python工具都适用迭代协议

列表推导和相关的函数编程工具在某些代码上通常比for循环运行得快

在python中,性能测试是一个很复杂的任务,因为一直在反复优化。python的一个主要使用原则——先让代码跑起来,确有必要情况下,再考虑性能问题

Python学习手册 文章被收录于专栏

《Python学习手册(第五版)》学习随记

全部评论

相关推荐

面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务