Python 基础(三) | Python 的组合数据类型
第三章 组合数据类型
⭐本专栏旨在对 Python 的基础语法进行详解,精炼地总结语法中的重点,详解难点,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握 python 编程,同时为后续的数据分析,机器学习及深度学习的代码能力打下坚实的基础。
🔥本文已收录于 Python 基础系列专栏: Python基础系列教程 免费订阅,持续更新。
3.1 列表
3.1.1 列表的表达
序列类型:内部元素有位置关系,能通过位置序号访问其中元素
列表是一个可以使用多种类型元素,支持元素的增、删、查、改操作的序列类型
另一种产生方式:list(可迭代对象)
可迭代对象包括:字符串、元组、集合、range()等
字符串转列表
元组转列表
集合转列表
特殊的 range()
range(起始数字,中止数字,数字间隔)
如果起始数字缺省,默认为 0
必须包含中止数字,但是注意中止的数字取不到
数字间隔缺省,默认为 1
range()转列表
3.1.2 列表的性质
列表的长度——len(列表)
列表的索引——与同为序列类型的字符串完全相同
变量名[位置编号]
正向索引从 0 开始
反向索引从-1 开始
列表的切片
变量名[开始位置:结束位置:切片间隔]
正向切片
反向切片
3.1.3 列表的操作符
用** list1+lis2 **的形式实现列表的拼接
用 n*list 或 list*n 实现列表的成倍复制
初始化列表的一种方式
3.1.4 列表的操作方法
1、增加元素
在末尾增加元素——列表.append(待增元素)
在任意位置插入元素——列表.insert(位置编号,待增元素)
在位置编号相应元素前插入待增元素
在末尾整体并入另一列表——列表 1.extend(列表 2)
append 将列表 2 整体作为一个元素添加到列表 1 中
extend 将待列表 2 内的元素逐个添加到列表 1 中,当然也可以采用加法实现。
2、删除元素
删除列表 i 位置的元素 列表.pop(位置)
不写位置信息,默认删除最后一个元素
删除列表中的第一次出现的待删元素 列表.remove(待删元素)
3、查找元素
列表中第一次出现待查元素的位置 列表.index(待查元素)
4、修改元素
通过"先索引后赋值"的方式,对元素进行修改 列表名[位置]=新值
5、列表的复制
错误的方式:这种方式仅是相当于给列表起了一个别名
正确的方式——浅拷贝
当内容中也有列表这种可变的情况时,这时浅拷贝可能出问题,应该采用深拷贝。
方法 1:列表.copy()
方法 2:列表 [ : ]
相当于对整个列表的切片
6、列表的排序
使用列表.sort()对列表进行永久排序
直接在列表上进行操作,无返回值
默认是递增的排序
递减排列
使用 sorted(列表)对列表进行临时排序
原列表保持不变,返回排序后的列表
7、列表的翻转
使用列表.reverse()对列表进行永久翻转
直接在列表上进行操作,无返回值
8、使用 for 循环对列表进行遍历
3.2 元组
3.2.1 元组的表达
元组是一个可以使用多种类型元素,一旦定义,内部元素不支持增、删和修改操作的序列类型
通俗的讲,可以将元组视作“不可变的列表”
3.2.2 元组的操作
不支持元素增加、元素删除、元素修改操作
其他操作与列表的操作完全一致
3.2.3 元组的常见用处
打包与解包
例 1 返回值是打包成元组的形式
例 2
采用 zip 函数进行打包
3.3 字典
3.3.1 字典的表达
映射类型: 通过“键”-“值”的映射实现数据存储和查找
常规的字典是无序的,仅可以通过键来对数据进行访问
字典键的要求
1、字典的键不能重复
如果重复,前面的键就被覆盖了
2、字典的键必须是不可变类型,如果键可变,就找不到对应存储的值了
不可变类型:数字、字符串、元组。 一旦确定,它自己就是它自己,变了就不是它了。
可变类型:列表、字典、集合。 一旦确定,还可以随意增删改。因此这三个类型不能作为字典的键。
上面没有报错,说明是合法的。
3.3.2 字典的性质
字典的长度——键值对的个数
字典的索引
通过 字典[键] 的形式来获取对应的值
3.3.3 字典的操作方法
1、增加键值对
变量名[新键] = 新值
2、删除键值对
通过 del 变量名[待删除键]
通过变量名.pop(待删除键)
变量名.popitem() 随机删除一个键值对,并以元组返回删除键值对
3、修改值
通过先索引后赋值的方式对相应的值进行修改
4、d.get( )方法
d.get(key,default) 从字典 d 中获取键 key 对应的值,如果没有这个键,则返回 default
小例子:统计"牛奶奶找刘奶奶买牛奶"中字符的出现频率
5、d.keys( ) d.values( )方法
把所有的 key,value 单独拿出来。
6、d.items( )方法及字典的遍历
3.4 集合
3.4.1 集合的表达
一系列互不相等元素的无序集合(互斥)
元素必须是不可变类型:数字,字符串或元组,可视作字典的键
可以看做是没有值,或者值为 None 的字典
3.4.2 集合的运算
小例子 通过集合进行交集并集的运算
语文和数学两门均为 A 的学员
S & T 返回一个新集合,包括同时在集合 S 和 T 中的元素
语文或数学至少一门为 A 的学员
S | T 返回一个新集合,包括集合 S 和 T 中的所有元素
语文数学只有一门为 A 的学员
S ^ T 返回一个新集合,包括集合 S 和 T 中的非共同元素
语文为 A,数学不为 A 的学员
S - T 返回一个新集合,包括在集合 S 但不在集合 T 中的元素
数学为 A,语文不为 A 的学员
3.4.3 集合的操作方法
增加元素——S.add(x)
移除元素——S.remove(x)
集合的长度——len(S)
集合的遍历——借助 for 循环
版权声明: 本文为 InfoQ 作者【timerring】的原创文章。
原文链接:【http://xie.infoq.cn/article/5964dfb6c8f273eb16a7ac8a1】。文章转载请联系作者。
评论