组合数据类型
5.1认识组合数据类型
Python中常用的序列类型有字符串、列表和元组。支持双向索引(正向递增、反向递减)。
特性:确定性、互异性和无序性。
确定性:给定一个集合,那么任何一个元素是否在集合中就确定了。
互异性:集合中的元素互不相同。
无序性:集合中的元素没有顺序,顺序不同但元素相同的集合可视为同一集合。
5.2列表
5.2.1创建列表
方法1:list_1 = [] # 使用[]创建空列表
方法2:li_2 = list() # 使用list()创建空列表
多学一招:使用isinstance()函数可以判断目标是否为可迭代对象,返回True表示为可迭代对象。
5.2.2访问列表元素
通过索引或切片这两种方式进行访问
5.2.3添加列表元素
Python提供了append()、extend()和insert()这几个方法。
5.2.4元素排序
列表中常用的排序方法有sort()、reverse()、sorted()。
5.2.5删除列表元素
删除列表元素的常用方式有del语句、remove()方法、pop()方法和clear()方法。
5.3元组
当使用圆括号“()”创建元组时,如果元组中只包含一个元素,那么需要在该元素的后面添加逗号,从而保证Python解释器能够识别其为元组类型。
t1 = ('python')
t2 = ('python',)
print(type(t1))
print(type(t2))
<class 'str'>
<class 'tuple'>
元组支持以索引和切片方式访问元组的元素,也支持在循环中遍历元组。
5.5集合
使用{}不能创建空集合(不包含元素的{}创建的是字典变量),空集合只能利用set()函数创建。
set_demo1 = {}
set_demo2 = set()
print(type(set_demo1))
print(type(set_demo2))
<class 'dict'>
<class 'set'>
集合是可变的,集合中的元素可以动态增加或删除。Python提供了一些内置方法来操作集合,常见内置方法如下:
集合也可以利用推导式创建,集合推导式的格式与列表推导式相似,区别在于集合推导式外侧为大括号“{}”,具体如下:
{exp for x in set if cond}
5.6创建字典
5.6.1 字典的表现形式为一组包含在大括号“{}”中的键值对,每个键值对为一个字典元素,每个元素通过逗号“,”分隔,每对键值通过“:”分隔,除了使用“{}”创建字典还可以使用内置函数dict创建字典。
5.6.2字典的访问
(1)字典的值可通过“键”或内置方法get()访问。
(2)字典涉及的数据分为键、值和元素(键值对),除了直接利用键访问值外,Python还提供了内置方法keys()、values()和items()。
5.6.3元素的添加和修改
通过键添加元素:字典变量[键] = 值
使用update()添加元素:dict.update(key=value)
字典支持通过为指定的键赋值或使用update()方法添加或修改元素,下面分别介绍如何添加和修改字典元素。
修改字典元素的本质是通过键获取值,再重新对元素进行赋值。修改元素的操作与添加元素的操作相同。
5.6.4 字典元素的删除
通过pop()、popitem()和clear()方法删除字典中的元素。
pop():根据指定键值删除字典中的指定元素
popitem():随机删除字典中的元素
clear():清空字典中的元素
5.6.5 字典推导式
字典推导式外侧为大括号“{}”,且内部需包含键和值两部分。
{new_key:new_value for key,value in dict.items()}
利用字典推导式可快速交换字典中的键和值,示例如下:
old_dict = {'name': 'Jack','age':23,'height':185}
new_dict = {value:key for key,value in old_dict.items()}
print(new_dict)
{'Jack': 'name', 23: 'age', 185: 'height'}
5.7组合数据类型与运算
Python中针对数字类型的运算符对组合数据类型同样适用,包括+、*、in、not in。
字符串、列表和元组使用“ + ”运算符,会对数据进行拼接
字符串、列表和元组使用“ * ”运算符,会对数据进行整数倍拼接
“in”“not in”运算符称为成员运算符,用于判断某个元素是否属于某个变量