Python中的重要数据类型
leader让学Python就开始学个呗,看看书,做个笔记。 Python有一种有名的数据结构容器。序列(例如列表和元组)和映射(例如字典)是两类主要的容器。序列中每个元素都有自己的编号,而映射中的每个元素则有一个名字(也称为键)。还有一个既不是序列也不是映射的容器类型集合(set)。序列 Python中包括6中内建的序列,字符串、Unico
leader让学Python就开始学个呗,看看书,做个笔记。
Python有一种有名的数据结构容器。序列(例如列表和元组)和映射(例如字典)是两类主要的容器。序列中每个元素都有自己的编号,而映射中的每个元素则有一个名字(也称为键)。还有一个既不是序列也不是映射的容器类型集合(set)。
序列
Python中包括6中内建的序列,字符串、Unicode字符串、buffer对象、xrange对象、列表(list)和元组(tuple)。
列表和元组的主要区别在于,列表可以修改,元组不能修改。不能向 tuple 增加元素,没有 append 、 extend 、insert 等方法;不能从 tuple 删除元素,没有 remove 或 pop 方法;不能在 tuple 中查找元素,没有 index 方法。Tuple 比 list 操作速度快。如果您定义了一个值的常量集, 并且唯一要用它做的是不断地遍历它, 请使用 tuple 代替 list。如果对不需要修改的数据进行 “写保护”, 可以使代码更安全,使用 tuple 而不是 list 。Tuples 可以在 dictionary 中被用做 key, 但是 list 不行。
列表的创建:a = [1,2,[1,2,3]]
元组的创建:t = ("a", "b", "c", "d", "e")
序列的常用操作:
(1)索引,就是取出对应位置的元素,与C++不同的是,索引可以为负数,表示从序列末端倒回来取;
(2)分片,使用分片操作来访问一定范围内的元素。分片通过冒号相隔的两个索引来实现,还可以只指定步进,跟matlab相似。同时还可以分片赋值;
(3)序列相加,表示序列的连接操作,[1,2,3]+[4,5]连接后的序列为[1,2,3,4,5];
(4)乘法,原来的序列被重复x次。‘lsj’*5表示‘lsjlsjlsjlsjlsj’;
(5)in,检测一个值是否在序列中;
>>>str = 'rm'
>>>'r' in str
true
(6)长度、最小值和最大值,内建函数len、min和max非常有用;
(7)list函数;
(8)del lsj[2],删除列表中的元素;
(9)append(),在列表末尾追加新的对象;
(10)count(),统计某个元素在列表中出现的次数;
(11)index(),用于从列表中找出某个值第一个匹配项的索引位置;
(12)insert(),用于将对象插入列表中;
(13)pop(),移除列表最后一个元素;
(14)remove(),用于移除列表中某个值的第一个匹配项。
(15)sort()/sorted(),用于排序列表,前者不能获取副本,后者能获取副本。
【注】None表示python内建的一个空值,表示什么也没有。
【注】序列中的元素类型可以不一样,[1,2,3,[3,4,5],'lsfj']
字符串
请记住字符串是不可变的。因此分片操作是不合法的。字符串格式化使用字符串格式化操作符用%百分号来实现。在格式化时还可以设置字段宽度和精度。
【注】可以使用*(星号)作为字段宽度或者精度,此时会从元组参数中读出。
>>>'%.*s' %(5, ‘Guido van Rossum’)
>>>‘Guido’
字符串常用的接口:
(1)find(),在一个长字符串寻找子字符串,返回左边的索引,可以设置查找范围的起点和终点;
(2)join(),非常重要,split的逆过程;
>>>seq=[1,2,3,4];
>>>sep='+'
>>>seq.join(sep)
>>>'1+2+3+4'
(3)lower(),转换为小写,相关接口有islower,title,istitle,upper,isupper,capitalize,swapcase;
(4)replace(),返回字符串中所有匹配项被替换的字符串。
(5)split(),将字符串分割成序列;
(6)strip(),去掉字符串两端的空格,其实还可以指定去掉什么。>>>'***!!dfs*dfjs*joj!!**'.strip(' !*');#空格,*,!都将被去掉。
(7)translate(),替换字符串的某些部分,但是和replace不同的是translate只处理单个字符。
字典
通过名字引用值得数据结构,这种数据结构类型称为映射(mapping)。字典是Python中唯一内建的映射类型。字典中的值并没有顺序,但是都存储一个特定的键(key)。键可以是数字、字符串甚至是元组。字典的创建:
phonebook={'Alice': '122', 'lsj': '123', 'sps': '124'}.
字典的一些操作:
(1)dict函数,通过关键字参数建立字典。d=dict(name='Gumby', '34'),与fromkey连用;
(2)len(d),返回字典关键字的数量;
(3)d[k],返回关联到键k上的值,如果键k不在字典中,将报错,可以用get;
(4)d[k]=v,给键k赋值v,如果键k不存在,则创建一个键k;
(5)del d[k],删除键位k的项;
(6)k in d,检查d是否含有键位k的项,注意查找的事键而不是值,列表用in是查找值,还可以使用has_key;
(7)字典特殊的格式化字符串,%(键名)说明元素;
(8)clear(),清楚字典中所有的项;
(9)copy,deepcopy,拷贝字典,前者属于浅拷贝,后者属于深拷贝;
(10)get,获取键的值,不存在不会抛出异常,还可以自定义默认值。
(11)pop/popitem,给定的键从字典中删除。
(12)setdefault,如果键不存在,设置默认值,存在不做任何改变。
【注】内置函数type(), 用以查询变量的类型。
【注】介绍两个内置函数,dir()和help()。dir()用来查询一个类或者对象所有属性。你可以尝试一下help()用来查询的说明文档。你可以尝试一下
更多推荐
所有评论(0)