序列和索引
序列是一个用于存储多个值的连续空间,每个值都对应一个整数的编号,称为索引
索引又分为正向递增索引和反向递减索引
切片操作的语法结构
序列[start:end:step]
start:切片开始的索引(包含)
end:切片的结束索引(不包含)
step:步长(默认为1)
操作符 | 描述说明 |
x in s | 如果x是s的元素,结果为True,否则结果为False |
x not in s | 如果x不是s的元素,结果为True,否则结果为False |
len(s) | 序列s中元素的个数(即序列长度) |
max(s) | 序列s中元素的最大值 |
min(s) | 序列s中元素的最小值 |
s.index(x) | 序列s中第一次出现元素x的位置 |
s.count(x) | 序列s中出现x的总次数 |
列表类型
列表是指一系列的按特定顺序排列的元素组成,是Python中内置的可变序列,在Python中使用[ ]定义列表,元素与元素之间使用英文的逗号分隔,列表中的元素可以是任意的数据类型。
enumerate函数的使用语法结构
for index,item in enumerate(lst):
输出index和item
列表的相关操作方法
列表的方法 | 描述说明 |
lst.append(x) | 在列表lst最后增加一个元素 |
lst.insert(index,x) | 在列表中第index位置增加一个元素 |
lst.clear() | 清除列表lsr中所有的元素 |
lst.pop(index) | 将列表lst中第index位置的元素取出,并从列表中将其删除 |
lst.remove(x) | 将列表lst中出现的第一个元素x删除 |
lst.reverse(x) | 将列表lst中的元素反转 |
lst.copy() | 拷贝列表lst中的所有元素,生成一个新的列表 |
列表排序的两种方式
1)列表对象的sort方法
lst.sort(key=None,reverse=False)
key表示排序的规则,reverse表示排序方式(默认升序)
2)内置函数sorted()
sorted(iterable,key=None,reverse=False)
iterable表示的是排序的对象
列表生成式的语法结构
lst=[expression for item in range]
lst=[expression for item in range if condition]
元组类型
元组是Python中内置的不可变序列,在Python中使用()定义元组,元素与元素之间使用英文的逗号分隔。元素中只有一个元素的时候,逗号也不能省略。
元组的创建方式有两种
1)使用()直接创建元组
语法结构:元组名=(element1,element2,...elementN)
2)使用内置函数tuple()创建元组
语法结构:元组名=tuple(序列)
删除元组:
del 元组名
元组生成式
元组生成式的结果是一个生成器对象,需要转换成元组或列表才能查看到元素内容
生成器对象中的元素可以使用_next_()方法进行获取
元组和列表的区别
元组 | 列表 |
不可变序列 | 可变序列 |
无法实现添加、删除和修改元素等操作 | append()、insert()、remove()、pop()等方法实现添加和删除列表元素 |
支持切片访问元素,不支持修改操作 | 支持切片访问和修改列表中的元素 |
访问和处理速度快 | 访问和处理速度慢 |
可以作为字典的键 | 不能作为字典的键 |
字典类型(可变类型不能作为字典中的键)
字典属于序列
字典类型是根据一个信息查找另一个信息的方式构成了“键值对”,它表示索引用的键和对应的值构成的成对关系
字典类型的创建方式
第一种使用{}直接创建字典(key相同时,value值进行了覆盖)
d={key1:value,key2:value2...}
语法结构dict{key1=value,key2=value2...}
第二种使用内置函数dict()创建字典
1)通过映射函数创建字典
zip[lst1,lst2]
注意事项:
字典中的key是无序的,Python3.5及其之前的版本字典的key在输出时无序,但是从Python3.6版本之后Python解释器进行了处理,所以才会看到输出的顺序与添加的顺序“一致”
字典元素的取值:
d[key]或d.get(key)
如果key不存在,d[key]会报错,d.get(key)key指定默认值
字典元素的遍历
1)遍历出key与value的元组
for element in d.items():
pass
2)分别遍历出key和value
for key.value in d.items():
pass
字典的相关操作方法
字典的方法 | 描述说明 |
d.keys() | 获取所有的key数据 |
d.values() | 获取所有的value数据 |
d.pop(key,default) | key存在获取相应的value,同时删除key-value对,否认获取默认值 |
d.popitem() | 随机从字典中取出一个key-value对,结果为元组类型,同时将该key-value从字典中删除 |
d.clear() | 清除字典中所有的key-value对 |
字典生成式
d={key:value for item in range}
d={key:value for key,value in zip(lst1,lst2)}
集合类型
Python中的集合与数学中集合的概念一致,Python中的集合是一个无序的不重复元素序列,集合中只能存储不可变数据类型,在Python中集合使用{}定义,与列表、字典一样,都是Python中的可变数据类型。
集合的创建方式有两种
1)使用{}直接创建集合
语法结构:s={element1,element2,...elementN}
2)使用内置函数set()创建集合
语法结构:s=set(可迭代对象)
集合的删除
语法结构:del 集合名
集合的相关操作方法
集合的方法 | 描述说明 |
s.add(x) | 如果x不在集合中,则将x添加到集合s |
s.remove(x) | 如果x在集合中,将其删除,如果不在集合中,程序报错 |
s.clear() | 清除集合中所有元素 |
列表、元组、字典、集合的区别
数据类型 | 序列类型 | 元素是否可重复 | 是否有序 | 定义符号 |
列表list | 可变序列 | 可重复 | 有序 | [] |
元组tuple | 不可变序列 | 可重复 | 有序 | () |
字典dict | 可变序列 | key不可重复 value可重复 | 无序 | {key:value} |
集合set | 可变序列 | 不可重复 | 无序 | {} |
本章总结:
序列结构主要有列表、元组、集合、字典和字符串
正向递增索引取值范围[0,N-1],反向递减索引取值范围[-1,-N]
切片菜哦做语法结构:序列名[start:end:step]
创建列表的方式:1)使用[]直接创建 2)使用内置函数list()创建
列表的相关操作方法:
添加方法:append()和insert()
删除方法:clear()、remve()、pop()
列表元素的排序:sort()和内置函数sorted()
其他方法:reverse()和copy()
创建元组的方式:1)使用()直接创建 2)使用内置函数tuple()创建
创建字典的方式:1)使用{}直接创建 2)使用内置函数dict()创建
使用内置函数dict()创建字典的两种方式:
通过映射函数zip(lst1,lst2)创建字典
通过给定关键字创建字典dict(key1=value1,k2=value2...)
字典的相关操作方法:
查询方法:get()、keys()、values()和items()
删除方法:pop()、popitem()和clear()
创建集合的方式:1)使用{}直接创建 2)使用内置函数set()创建
集合的相关操作方法
添加方法:add()
删除方法:remove()和clear()
列表、字典、集合都是Python中的可变数据类型,元组是Python中的不可变数据类型
列表、元组、字典和集合的遍历都可以通过for循环实现
列表、元组、字典和集合的删除都可以使用语句del来实现