Cai Cai's Day --- Python's built-in four kinds of the most widely used containers (lists, sets, tuples, dictionaries)

        一般把list\tuple\set\dict叫做容器
	一种数据结构,用来存放大量数据的容器
	数组概念   Python中是没有数组概念

一、列表(list)
	1、什么是列表:
		Python底层基于双向链表的实现
		链表是一种线性表,由大量的节点组成,每一个节点都可以存储数据
			1)数组:(内存是连续)
			2)栈:(后进先出)
			3)队列:(先进先出)
			4)链表:对数组的补充存在的
		列表就可以存储大量的数据
	2、python中如何使用列表,定义列表
		1)调用系统的一个全局函数  list
			a = list()			#创建了一个空列表
			a = list([n1,n2,...nn])		#创建列表,并赋值
		2)可以利用弱数据语言语言的特点来创建列表
			b = [1, 2, 3, 4, 11]
	3、如何访问列表中的元素
		通过下标(在编程中,99%技术或者语言,下标都是从0开始计数)
		一定注意:下标不要越界,会报错
		重新赋值:
			列表[下标] = 新值
			ls[3] = 50		#相当于将ls list的第四个值重新赋值为50
	4、遍历元素
		for 变量  in  容器:
			变量代表容器中的一个确定的元素
	5、列表的长度问题
		怎么判断一个列表有多少元素
		全局函数len
		使用while循环遍历:
			index = 0
			while index < len(a):
				print(a[index])
				index += 1
	
	列表本质是一个对象:
		想扩展列表:提供了大量的列表的方法,调用就可以完成需要的功能!
	6、列表的常用方法:
		1)append		#能够在列表末尾添加新的元素
		a = [1,2,3,4,5,6,100]
		a.append(200)
		#查看a
		len(a)		#求容器长度
		a[6]
		>>>200
		
		2)clear		#清除列表中的所有元素
		a.clear()
		
		3)copy		#复制列表(浅拷贝)
		a.copy()
		>>>[1,3,4,5,6,100]
		aa = a.copy()
		a
		>>>[1,3,4,5,6,100]
		注意:aa = a.copy()  与引用传递  bb = a 的区别
                      
	        4)count		#统计某个元素在列表中的个数
	    
	        5)index		#查询元素在列表中的第一次出现的下标位置
	    	a.index(1)
	    	a.imdex(100)	#注意,如果列表中不存在该元素,则抛出异常
	    	
	        6)insert		#指定要插入的元素位置
	    	help(a.insert)
	    	a = [1,2,3,4,5]
	    	a.insert(2,"haha")
	    	>>>a
	    	>>>[1,2,"haha",3,4,5]
	  
	        7)remove		#移除对应的元素    注意:如果列表中不存在该元素,则抛出异常
	   	a = 10
	   	if a in list:
	   		list.remove(a)

	        8)pop			#通过下标,移除元素。  注意:没有下标时,删除最后一个
	    	
	        9)reverse		#翻转元素的顺序
	    	
	       10)sort		#排序(主要针对数字)
	    	b = [10,-20,200,22]	
	    	b.sort()
	    	>>>[-20,10,22,200]
	     
	       11)  extend		#扩展列表,用来合并多个列表
	     	a.extend(b)

Second, the collection (set) can not have duplicate values

1、使用全局函数  set()
	s = set()
2、使用{}		注意:如果没有初始化的值,不要直接使用{}反向定义,默认是dict
	s = set({1,2,3,4,5})
3、特点:元素唯一,不允许重复,无序的
4、set的常用方法:
	1)add		#添加
		ss.add(100)
	2)clear		#清除
	3)copy
	4)difference		#求差集
		s  =  {1,4,100,9}
		ss = { 2,4,8}
		s.difference(ss)
		>>>{1,100,9}
		ss.difference(s)
		>>>{2,8}
	5)discard		#移除元素,如果存在,不存在也不会抛出异常
		ss.discard(1000)
	6)intersection	#交集
	7)pop			#随机移除一次
	8)remove		#移除元素
		ss.remove(100)
	9)union			#并集
	
注意:在python中,{}不一定就是set,也有可能是dict;

Three tuple (tuple)

表示的是固定的,不变的值
1、定义元组:
	1)t1 = tuple((1,3,4,5))
	2)t2 = (1,3,5,5,7)
元组也是通过下标访问!!!
2、常用方法:
	1、count			#统计元素个数
	2、index			#查找索引位置
**注意1:**元组是不可变类型,意味着当元组中的值定义好之后,再无法修改
		但是注意,如果元组的元素是可变类型,那么该元组是可变的。		
		t1 = (1,2,3,4,[1,2,3],5,6)
		t1[4]
		>>>[1,2,3]
		type(t1[4])
		>>><class 'list' >
		t1[4].append(10000)
		t1
		>>>(1,2,3,4,[1,2,3,10000],5,6)
**注意2:**在定义元组时,如果只有一个元素,那么一定要在该元素后加个逗号,否则python解释器会将 
	        该元素当成一个数字对待(圆括号就是数学上的含义)
		a = (1)
		type(a)
		b = (1,)
		type(b)

Fourth, the dictionary (dict)

python中的字典类型,key必须是字符串!!!
1、定义:
	1){}
	2){“name": "xxx", "age": 16 }
	3)dict( {“name": "xxx", "age": 16 } )
2、访问元素:
	d[key]
	d[key] = 新值		#如果key不存在,新增这个键值对
3、常用的方法:
	1)clear		
	2)copy
	3)fromkeys		#通过一个可迭代的对象(Iterable),能够被for  in 循环迭代每一个元素
	4)get			#通过该键获取对应的值,如果没有这个key,返回None
	5)items			#成对返回键值对
		在迭代时使用!!!
	6)   keys			#返回所有的key对应的值
	7)   pop			#通过key,删除对应的键值对,如果该键不存在,则抛出异常
		d2.pop("name")
	8)   popitem		#移除一个键值对,按照后进先出LIFO的规则
	9)   setdefault		
	10) update		
	11)values
	
4、字典的迭代:
	1、第一种:
		for  k  in   d2:
			print(k, d2[k])
	2、第二种:
		for  key  in  d2.keys():
			print(k, d2[k])
	3、第三种:
		for  k,v  in  d2.items():
			print(k,v)
		
LIFO:后进先出	栈
FIFO:先进先出	列表
Published 21 original articles · won praise 8 · views 1229

Guess you like

Origin blog.csdn.net/weixin_44029504/article/details/104593131