目录:
1.列表(List)
2.列表扩展
一、列表
1.列表(List)
(1)List是处理一组有序项目的数据结构;
(2)List是Python中使用最频繁的数据类型;
(3)列表可以完成大多数数据集合类的数据结构实现;
支持字符、数字、字符串甚至还可以嵌套列表、元组、字典等
(4)列表用[ ]表示,内部元素见用逗号隔开.
2.创建列表
(1)#创建空列表
list1 = [ ]
list1
(2)创建非空列表
list2 =[1, 'vd' ,12.3 ,[1,2,'sd']]
list2
3.访问列表
(1)与字符串的索引一样,列表索引从0开始
(2)列表可以进行截取、组合等
(3)使用下表索引来访问列表中的值,也可以使用方括号的形式截取列表
list1=['physics','chemistry',1997,2000];
print"list1[0]:",list1[0]
4.更新列表
(1)可以对列表数据进行修改或更新;
(2)可以使用append( )方法来添加新的列表项;
(3)可以直接给列表赋值;
5.删除列表
(1)使用del语句来删除列表的元素或整个列表;
(2)使用remove( )移除列表中的元素
6.列表运算符
(1)长度,len([1,2,3]),3
(2)组合,[1,2,3]+[4,5,6],[1,2,3,4,5,6]
(3)重复,['Hi!']*4,['Hi!','Hi!','Hi!','Hi!']
(4)元素是否存在于列表中,3 in [1,2,3],True
(5)迭代,for x in [1,2,3]:print x,1 2,3
7.列表截取
python的列表截取与字符串操作类似,均使用切片完成
L = ['spam','Spam','SPAM!']
L[2]='SPAM!' #读取列表中第三个元素
L[-2]='Spam' #读取列表中倒数第二个元素
L[1:]=['Spam','SPAM!'] #从第二个元素开始截取列表
8.列表函数&方法(对所有序列字符串、列表、元组都有用)
(1)cmp(list1,list2) #比较俩个列表的元素
(2)len(list) #列表元素个数
(3)max(list) #返回列表元素最大值
(4)min(list) #返回列表元素最小值
(5)list(seq) #将元组/字符串转换为列表
9.列表操作函数(仅对列表有用)
(1)append(obj) 在列表末尾添加新的对象
(2)insert(index,obj)将对象插入列表
(3)pop(index)移除列表中的一个元素(默认是最后一个元素),并且返回该元素的值
(4)remove(obj)移除列表中的某个值的第一个匹配想,一次删除一个
(5)index(obj)从列表中找出某个值第一个匹配项的索引位置,如未找到就会抛出异常。
(6)count(obj)统计某个元素在列表中出现的次数
(7)extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
(8)reverse( )反向列表中元素
(9)sort([func]) 对原列表进行排序,根据ASCII码从大到小进行排序
10、sort函数
按照使用元组的第一个元素大小比较来实现list的排序
11、自动生成列表
List1 = range(10)
List1
[0,1,2,3,4,5,6,7,8,9]
List2 = range(1,10)
List2
[1,2,3,4,5,6,7,8,9]
List3 = range(1,10,2)
List3
[1,3,5,7,9]
12、列表复制
引用复制的list,它们的内存地址是相同的,修改任何一个list,另一个list中的元素的值都会被改变
非引用list,它们的内存地址不一样,所以修改任何一个list都不会影响另一个list
list1 [0,1,2,3,4,5,6,7,8,9]
List2 =list1
复制([:]模式)指完全复制一个新的对象
13、列表的增删改查遍历的综合操作
二、列表扩展
1.迭代器
通过iter( )方法获得了list的迭代器对象,然后就可以通过next( )方法来访问list中的元素啦。当容器中没有可以访问的元素后,next( )方法将会抛出一个StopIteration异常终止迭代器。
2.自定义的迭代器
3.生成器
如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环,一边计算的机制,成为生成器(Generator).
4.迭代器和生成器的区别
通过实现迭代器协议对应的__iter__( )和next( )方法,可以自定义迭代器类型。对于可迭代对象,for语句可以通过iter()获取迭代器,并且通过next()方法获得容器的下一个元素。
生成器是一种特殊的迭代器,内部支持了生成器协议,不需要明确定义__iter__( )和next( )方法
生成器通过生成器函数产生,生成器函数可以通过常规的def语句来定义,但是不用return返回,而使用yield一次返回一个结果。
5.枚举
Demo
For i, value in enumerate([‘A’,’B’,’C’]):
Print I,value
6.深浅拷贝
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。
(1)copy.copy 浅拷贝 只拷贝副对象,不会拷贝对象的内部的子对象。
(2)copy.deepcopy 深拷贝 拷贝对象及其子对象
7.浅拷贝的内存
8.深拷贝的内存
9.通过list实现堆栈
10.通过list实现队列
三、元组
1、创建元组
Tu = ( )
Tu
创建只有一个元素的元组时,元素后面的逗号是不能省略的。
2、访问元组
元组可以使用下标索引来访问元组中的值。
3、修改元组
元组中的元素值是不允许修改的,元组中的可变对象可以修改,可以对元组进行连接组合
4、删除元组
5、元组运算符
6、元组的索引、截取
7、元组的内置函数
8、元组的遍历和查找
三、字典
1、定义方法
Dict = { }
2、访问方法—访问字典的值
Dict = {’Name’:’Zara’,’Age’:7,’Class’:’First’}
Print “dict[’Name’]:”,
3、修改字典中的值
4、删除字典中的值
5、字典的key
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
(1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个键就会被记住
(2)键必须不可变,所以可以用数、字符串或元组充当,所以用列表就不行。
6、内置函数&方法
(1)cmp(dict1,dict2) 比较两个字典元素
(2)len(dict) 计算字典元素个数,即键的总数
(3)str(dict)输入字典可打印的字符串表示
(4)type(variable)返回输入的变量类型,如果变量是字典就返回字典类型
7、字典的排序
8、字典内置的常用函数
四、序列
1.列表、元组和字符串都是序列。序列的两个主要特点是索引操作符和切片操作符。
2.切片操作符是序列名后面跟一个方括号,方括号中有一对可选的数字,并且用冒号分隔。
3.切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片结束位置,但不包括这个位置(如:list[2:5])。
如果切片时,不指定第一个数,Python就会从序列的首页位置开始(如list[:5]).
如切片时,不指定结束位置,Python就会停止在序列尾。(如:list[3:])
网友评论