1,列表
什么是列表:
列表相当于其他语言的数组。
创建列表的方法:
1,使用[]中括号,例如: li=['python','hello']
2,调用内置函数list(),例如:li=list(['python','hello'])
列表的特点:
- 列表元素按顺序有序排序
- 索引映射唯一数据
- 列表可以存储重复数据
- 任意数据类型混存
- 根据分配和回收内存
列表的查询操作:
- 获取列表中指定元素的索引,index()
- 如果查询列表中有n个相同的元素,只返回第一个元素的索引
- 如果查询的元素不存在,则抛出ValueError异常
- 可以指定区域查找index(start,stop)
- 获取列表中单个元素
- 正向索引从0到N-1,逆向索引从-N到-1、
- 指定索引不存在抛出异常
- 获取列表中的多个元素
- 列表名[start: stop : step ] ,切片范围[start,stop) ,step默认为1,step如果为负数就是从start开始倒序着获得元素
列表的增加操作:
- append(),在列表的末尾增添一个元素
- extend(),在列表的末尾增添多个元素
- insert(),在列表的任意位置添加元素,例如:insert(1,90)
- 切片,lit[1:]=lit3表示lit列表第一个元素之后的元素被lit3替换掉了
列表元素的删除操作:
- remove(),一次删除一个元素,重复元素只删除第一个,元素不存在抛出异常。
- pop(),删除一个指定索引位置上的元素,不指定索引默认抛出最后一个元素,元素不存在抛出异常
- clear(),清空列表
- del,删除列表
列表的修改操作:
- 根据索引修改,例如:lit[2]=3
- 使用切片进行多个元素修改
列表的排序操作:
- 调用.sort()方法,默认升序排列,里面参数reverse=True,降序排列
- 调用内置函数sorted(),会产生新的列表对象,原列表不发生改变
列表生成式:
lit=[i for i in range(1,10)]
2,字典
字典是什么:python内置的数据结构之一,是一个可变序列
以键值对的方式进行存储数据,字典是一个无序的序列,和java中分map有点相似。
字典的实现原理:首先通过hash函数对键key进行计算,算出位置,再得出值,所以键key不可以重复。
字典的创建:
1,常用的方式使用 { }花括号进行创建,例如:sorces={'张三': 100,'李四': 95}
2,使用内置函数dict(),例如:dict('张三'=100,'李四'=95),左侧是键,右侧是值
字典元素的获取:
- []获取,例如:sorces['张三']
- get()获取,例如sorces.get('张三')
二者的区别:
- []如果字典中不存在指定的key,抛出异常
- get方法获取,如果字典中不存在指定的key,不会抛出异常,会返回None,可以通过参数设置返回的默认值。
字典的常用操作:
key的判断,判断是否存在,in或者not in,返回布尔类型
- 字典元素的删除:del sources['张三']
字典元素的新增和修改:sources['张三']=50
获取字典视图的三个方法
- keys():获取字典中的所有key,得到的可以转成一个列表
- values():获取字典中所有的value,得到的可以转成一个列表
- items():获取字典中的所有key,value对,得到的可以转换成一个列表
字典元素的遍历:
- for item in sources :
print(item)
只是输出的键
字典生成式:
需要用到内设置函数zip( )和两个列表
zip()内置函数:用于将可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表。
items=[’张三‘,’李四‘,’王五‘]
prices=[100,96,97]
d={item : price for item,price in zip(items,prices)}
3,元组
什么是元组:
python内置的数据结构之一,是一个不可变序列。
元组创建方式:
- 使用小括号 t=('python','hello')
- 使用内置函数tuple(), t=tuple(('python','hello'))
注意:只包含一个元素的元组需要使用逗号,t=(10,)
元组的遍历:用for in
4,集合
什么是集合:
python语言提供的内置数据结构属于可变序列。集合是没有value的字典,底层也是采用的hashcode。
创建集合的方法;
-
直接{ },例如s=
-
使用内置函数set(),例如:
s=set(['python','hello']) 将列表转化成集合
s=set(('python','hello')) 将元组转化成集合
s=set('python') 将字符串转化成集合
注意:
- 集合中的元素不能重复。
- 创建空集合使用内置函数创建 s=set(),如果使用花括号的话默认为空字典。
集合的相关操作:
判断是否为集合元素:in或者not in
集合元素的新增操作:
- 调用add()方法,一次添加一个元素。
- 调用update()方法至少添加一个元素。
集合的删除操作:
- 调用remove()方法,一次删除一个指定元素,如果指定元素不存在就会抛出异常。
- 调用discard()方法,一次删除一个指定元素,如果指定元素不存在不会抛出异常。
- 调用pop()方法,一次只删除一个任意的元素。
- 调用clear()方法,清空集合。
集合间的关系:
- ==或者=!可以判断两个集合是否相等
- issubset方法判断一个集合是否是另一个集合的子集,例如B是A的子集 B.issubset(A) 返回True
- issuperset()方法判断一个集合是否是另一个集合的超集,例如A是B的超集 A.issuperset(B)返回True
- isdisjoint方法判断两个集合是否有交集,例如 A.isdisjoint(B) 返回布尔类型
集合的数学操作:
- 交集:A.intersection(B) 或者 A&B
- 并集:A.union(B) 或者 A|B
- 差集:A.difference(B) 或者 A-B
- 对称差集:A.symmetric_difference(B) 或者 A^B
集合生成式:
s={i for i in range(10)},和列表生成式类似。