集合,列表,元组,字典
python序列
序列是python里最基本的数据结构:python中包含了6种内建的序列分别为:列表,元祖,字符串,Unicode字符串,buffer对象,xrange对象
buffer对象
什么是buffer呢?简单来说它就是一个缓冲区,那么为什么要引入缓冲机制呢?
在linux下程序的运行分为两个模式,分别为:用户模式,和内核模式
我们普通的程序都是运行在用户模式下的,但是一旦发生系统调用,或者硬件中断的时候,系统的工作方式就会转入到内核模式下,在内核模式下运行的程序是不会受到程序员的控制的,如果频繁调用系统函数的话,就会使得程序不停的在,用户模式和内核模式之间进行切换(如:linux下调用read或者write函数对文件的操作。),系统的效率就会大大的降低。
缓冲区就是在用户进行系统调用之前,先将数据存放到缓冲区中,当缓冲区满了,或者操作结束以后,再将缓冲区的内容用系统函数写入到相应的地方,减少内核模式和用户模式的切换次数,这样就能大大的提升效率。
集合
集合的概念
集合是一种无序的,不重复的元素的序列不重复也就是每个元素,只能有一个。
集合的基本操作
集合的基本操作包括:
1.集合的创建:a = set()或者a = {1,2,3}注:为了方便区分字典的创建,空集合只能使用set()函数进行创建。
2.增加元素:add()和update()两者区别为:add()只能添加单个元素,update()可添加多个元素。
3.删除元素:remove()函数:只能删除有的数据,没有会报错。discard()有则删除,没有则啥都不干。pop():随机删除一个元素,并将元素返回。
列表
列表的概念
列表就是一种有序存放数据的集合,类似于c语言中的数组,但是其和数组最大的区别为python中的列表可以存放不同数据类型的元素,比如:a = [1,‘string’,False,2.0]这种存法在c中是不允许的。
列表的基本操作
列表的创建
arr = []在定义的同时可进行初始化,不同元素之间使用英文下的逗号隔开。
列表的元素的访问
对象名字加上下标(索引),就可以对列表中的元素进行访问 如 arr[1],也可采用赋值运算符对其元素进行更改。
基本运算
set = [1,2,3]
set1 = [4,5,6]
+
列表的合并:set+set1–>结果为:[1,2,3,4,5,6]
*
列表的重复set*2–>结果为:[1,2,3,1,2,3]
in
判断某个元素是否在列表中:在则返回true,不在返回flase:3 in set–>返回True
len
返回列表中元素的个数:len(set)–>3
切片
对于有序序列,可进行的操作有切片这一项,格式为:[start:end:步长]注:表示从start开始到end位止的数据新合成一个列表返回。其中左边的包括,右边的不包括,步长为正,正着切,为负反着切
。如:set[0:2:1]步长不填默认为1。
–>[1,2]。set[2:0:-1]–>[3,2]
列表中常用的方法
方法全都要借助于类对象,使用类的成员提取操作运算符.来进行
1,append():在列表的末尾添加元素。
2,insert(index,value):在index的位置添加元素value
3,extend([1,2]):在列表的末尾追加多个元素,加入了1和2两个元素,如果使用append()则加了一个列表元素。
4,remove():从左至右,移除第一个匹配项。
5,pop(index):移除指定索引的元素,如果无参数则移除最后一个元素。返回移除的值
6,index():从左至右,返回第一个找到的元素的索引。
7,count():返回指定的元素出现的次数。
8,reverse():反转列表。
9,sort():列表的排序(默认从小到大,如需要从大到小则加入参数reverse = True),只能有int或者float数据。
10,clear():清空列表。
11,copy():复制列表,返回新的列表。
元组(tuple)
什么是元组
1,元祖就是一组不能进行修改的元素的集合。所谓的不能修改,指的宏观上的修改,即,元祖的本身不能进行修改,但当含有引用数据类型数据对象时,对象不被修改,我们就认为元祖没被修改
如:a = (1,2,3,[4,6])其中元祖的第四个元素里的值被修改是完全合法的。
字典(dict)
字典的概念
字典是python中的一种以键值对的形式存放的一种无序
的数据的类型。一旦一个字典创建好了以后,我们认为,其中的键的值就不能修改,而字典的值却可以进行修改。
字典的基本操作
1,字典的创建:dic = {‘name’:‘张三’,‘age’:18,‘score’:80.5}这就是一个简单的字典,其中’name’ 为键,‘张三’为值,多个键值对之间用逗号隔开。
2,字典的修改,以及元素的访问。通过键来给值,或者找值如dic[‘name’]–>就会得到’张三’。
3,字典的删除:删除键,相应的值也会被删除通过调用del[‘name’]来实现。
4,len(dic):求字典中键值对的数目。
5,str(dic):将字典整体当字符串输出–>输出后为:’’{‘name’:‘张三’,‘age’:18,‘score’:80.5}"作用为方便在磁盘硬件上存储吧
字典中常用的方法
说到方法一定要借助于类对象来进行调用
1,clear():删除整个字典。
2,pop(key):填入一个键进行键值对删除。返回删除的值。
3,copy():对字典进行浅复制,返回一个字典。
深复制和浅复制的区别,还没看,懂的可以指出下
4,fromkeys(seq,value):创建一个字典,以sql里的每一个元素做键,value作为默认值进行创建。
5,key in dec:某个关键字是否在字典中,在返回true,不在返回flase。
6,get(key,default = None):返回指定键所对应的值,没有则返回默认值也就是参数2。
7,item():返回一个键值组成的元祖数组。
8,keys()返回一个键的元祖列表。
9,setdefault(key,default = None):返回指定键的值,没有则添加到字典中。
10,update(dict2):将一个字典加入到另一个字典中。
11,values():以列表的方式返回字典的值。
12,popitem():随机返回并删除字典中的键值对。