存储大量数据的容器在python中称之为内置数据结构

4种内置数据结构(容器类型): 1.列表:list => [val1,val2,val3,val4] 列表是处理一组有序项目的数据结构 可包含任何类型的对象 是可变的数据类型(即这种类型的值可被修改)

 列表的基本操作:
     索引:sample = [1,2,3,4]----下标不能越界
		 切片:sample = [start:end:step]----三个值都为选填项
		     切片对象(slice函数)---生成一个slice对象,相当于给要切的内容取个名
				 ![](https://s4.51cto.com/images/blog/202006/16/f5a1411c28bb629c2dae712c48d01433.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
		 增加:
		      append:在末尾作为整体追加,类型不限
					insert:在index位置插入数据,2个参数(索引,插入的元素)
					extend:扩展列表---将一个列表里的内容扩展到另一个列表(只限可转为list的类型---str,list,tuple)
					如list1.extend(list2)即list2的内容在list1打印出来
		 删除:
		     pop:默认删除最后一个元素(指定index删除)
				 remove:指定删除的数据(要删除的数据不存在时会报错)
				 del:根据下标删除(del是python的一个关键字,用于删除变量的引用)
				 clear:清空列表
		 修改:主要利用下标和切片来修改或增加,删除
		 反转:reverse或切片
		     区别:reverse会使list本身反转,切片只是结果反转
		 排序:sort---(根据首字母排序,若第一位一样,则看第二位)
		           list.sort()----默认升序
             list.sort(reverse = True)-----降序
		 统计:len,count,index
		 遍历:依次取出对象中的每一项数据
		     list是可迭代对象,可直接用for遍历
				 1)for i in list:
               print(i)
       2)for i,j//i in enumerate(list):
               print(i,j)//print(i)
		 判断成员关系:判断列表中是否有某个数据
		 类型转换:字符串str转列表list
		 查下标

2.元组:tuple => (val1,val2,val3,val4) 元组是处理一组有序项目的数据结构 元组和字符串一样是不可变的 可以包含任何类型的对象

	元组的基本操作:
	    索引
			切片
			不可变性:
			![](https://s4.51cto.com/images/blog/202006/16/cb27efb3cc94d0b1657c5e9872d54e66.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
			![](https://s4.51cto.com/images/blog/202006/16/e00c098051e9eb9d99a70396c96e95c8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
			统计
			查下标
			遍历
			成员关系

列表list和元组tuple的区别: 相同点: 序列的两个主要特点是索引操作符和切片操作符 索引操作符让我们可以从序列中抓取一个特定项目 切片操作符让我们能够获取序列的一个切片,即一部分序列 不同点: list: 可变对象 tuple: 不可变对象,不能增加修改删除 tuple中嵌套list时,list是可修改的

3.字典:dict => {key1:val1,key2:val2} 字典是Python中一个键值映射的数据结构 无序的可变对象 key必须是唯一的可hash对象(python中所有字符串、数字、元组、布尔值、None都是可hash对象) 字典的value可以是任何值

	字典的基本操作:
	    查看
			取值:
			    1)dicts[key] = 当key不存在会报错
					2)dicts.get(key,default) = 当key不存在时返回default值
			新增:
			    dicts[key] = value---当key不存在时,表示增加一个键值对///当key存在时,表示修改对应的value值
			删除:
			    1)dicts.pop(key)
					2)dicts.popitem()---默认删除最后一对键值对
			遍历
			合并字典:
			    1)dict1.update(dict2) =   将dict2合并到dict1
			    2)dict(dict1, **dict2) =  将dict1与dict2合并生成一个新字典
			
			统计长度
			成员关系:
			    item in dicts
					item not in dicts

4.集合:set => {key1,key2,key3,key4} 集合是一个无序的,不重复的数据组合 是一个只含有key的字典 集合的作用: 去重:把一个列表变成集合,就自动去重了 关系测试:测试两组数据之前的交集、差集、并集等关系

	集合元素必须是可hash对象,跟字典一样
	set和dict的唯一区别仅在于没有存储对应的value
	
	集合的基本操作:
	    添加:
			    1)s.add(item) => 添加一项
					2)s.update(someitems) => 添加多项
			移除:
			    1)s.remove(item) => 移除一项(item不存在会报错)
					2)s.discard(item) => 移除一项(item不存在则什么也不做)
			集合操作:
			    创建集合
					交集:t 和 s的交集 , 返回一个新的 set 包含 s 和 t 中的公共元素
					并集:t 和 s的并集 ,返回一个新的 set 包含 s 和 t 中的每一个元素
					![](https://s4.51cto.com/images/blog/202006/16/fc29a261bd3e63f9bca51b082fc555ef.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
					差集:返回一个新的 set 包含 s 中有但是 t 中没有的元素
					对称差集:返回一个新的 set 包含 s 和 t 中不重复的元素(在t或s中,但不会同时出现在二者中)
					![](https://s4.51cto.com/images/blog/202006/16/26dc4f149cb342f3e5ab2e84803c478e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)