目录
十五、列表
列表相当于其他语言的数组
创建方式
1、中括号
2、使用内置函数list()
特点
列表元素按顺序有序排序
索引映射唯一一个数据(正序从0开始,逆序从-1开始)
列表可以存储重复数据
任意数据类型混存
根据需要动态分配和回收内存
查询操作
获取列表中指定的元素
index()
或者指定范围查询
获取列表中单个元素
正向
逆向
获取列表中的多个元素
切片的结果为原列表的片段的拷贝
增加操作
append() 在列表的末尾添加一个元素
extend() 在列表的末尾添加至少一个元素
insert() 在列表的任意位置添加一个元素
切片 在列表的任意位置添加至少一个元素
删除操作
remove()
一次删除一个元素
重复元素只删除第一个
元素不存在时抛出异常
pop()
删除一个指定索引位置上的元素
指定索引不存在时抛出异常
不指定索引,删除列表中的最后一个元素
切片
一次至少删除一个元素
clear()
清空列表
del
删除列表
修改操作
排序操作
常见两种方式
-
调用sort()方法,列表中所有元素默认按照从小到大的顺序进行排序,可以指定reverse=True,进行降序排序,不会产生新的列表而是在原列表上进行排序
-
调用内置函数sorted(),可以指定reverse=True,进行降序排序,原列表不发生改变,将产生一个新的列表
十六、列表生成式
即生成列表的公式
前面的i或者i*i表示列表元素的表达式,通常包含自定义变量
十七、字典
python内置的数据结构之一,与列表一样是一个可变序列
以键值对的方式存储数据,字典是一个无序的序列
根据key查找value所在的位置
创建方式
-
使用花括号
scores={'张三':100,'李四':98}
-
使用内置函数dict()
dict(name-'jack',age=20)
元素的获取
-
[] scores['张三']
-
get() scores.get('张三')
区别
[]如果字典不存在指定的key,抛出keyerror异常
get()方法取值,如果字典中不存在指定的key,并不出抛出keyerror而是返回None,可以通过参数设置默认的value,以便指定的key不存在时返回
特点
所有元素都是一个key-value对,key不允许重复,value可以重复
字典中的元素是无序的,是根据hash值进行存放的
key必须是不可变对象
字典也可以根据需要动态的伸缩
字典会浪费较大的内存,是一种使用空间换时间的数据结构
十八、字典的常用操作
增删改判断清空和遍历
判断
in
not in
删除
del scores['张三']
清空
scores.clear()
新增
scores['Jack']=90
修改
scores['Jack']=100
遍历
for a in scores:
print(a,scores.get(a))
获取字典视图的三个方法
keys() 获取字典中所有key
values() 获取字典中所有value
items() 获取字典中所有key,value对
十九、字典生成式
内置函数zip()
用于将可迭代的对象作为参数,将对象中的对应的元素打包成一个元组,然后返回由这些元组组成的列表
二十、元组
python内置的数据结构之一,是一个不可变序列
注:a)如果元组中的对象本身是不可变对象,则不能再引用其他对象
b)如果元组中的对象本身是可变对象,则可变对象的引用不允许改变,但数据可以改变,也就是说不能修改,但是可以添加等。
创建方式
-
直接小括号
t=('Python','hello',98)
-
使用内置函数tuple()
t=tuple(('Python','hello',98))
-
只包含一个元组的元素需要使用逗号和小括号
t=(10,)
遍历
t=('Python','hello')
for item in t:
print(item)
二十一、集合
属于可变类型的序列
集合是没有value的字典
集合中的元素不允许重复
创建方式
-
直接{}
t={'Python','hello',98}
-
使用内置函数set()
s=set(range(6))
相关操作
判断
in或not in
新增
调用add()方法,一次添加一个元素
s.add(80)
调用update()方法至少添加一个元素
s.update(200,80,40)
删除
调用remove()方法,一次删除一个指定的元素,如果指定的元素不存在则抛出异常
调用discard()方法,一次删除一个指定的元素,如果指定的元素不存在不抛出异常
调用pop()方法,一次只删除一个任意元素,不能添加参数
调用clear()方法,清空集合
集合间的关系
1、是否相等
可以利用==或!=来判断
2、一个集合是否为另一个集合的子集
可以调用方法issubset进行判断
3、一个集合是否为另一个集合的超集
可以调用方法issuperset进行判断
4、两个集合是否没有交集
可以调用方法isdisjoint进行判断
数学操作
-
交集
调用intersection()或者&
-
并集
调用union()或者 |
-
差集
调用difference()或者-
-
对称差集
调用symmetric_difference()或者^
二十二、集合生成式
前面的i或者i*i表示列表元素的表达式,通常包含自定义变量