Python的三个重要数据类型

来源:互联网 发布:mac qq 群共享文件夹 编辑:程序博客网 时间:2024/04/29 11:29

 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,检测一个值是否在序列中;

[python] view plaincopyprint?
  1. >>>str = 'rm'  
  2. >>>'r' in str  
  3. 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内建的一个空值,表示什么也没有。


字符串

      请记住字符串是不可变的。因此分片操作是不合法的。字符串格式化使用字符串格式化操作符用%百分号来实现。在格式化时还可以设置字段宽度和精度。

【注】可以使用*(星号)作为字段宽度或者精度,此时会从元组参数中读出。

         >>>'%.*s'  %(5, ‘Guido van Rossum’) 

         >>>‘Guido’

      字符串常用的接口:

    (1)find(),在一个长字符串寻找子字符串,返回左边的索引,可以设置查找范围的起点和终点;

    (2)join(),非常重要,split的逆过程;

[python] view plaincopyprint?
  1. >>>seq=[1,2,3,4];  
  2. >>>sep='+'  
  3. >>>seq.join(sep)  
  4. >>>'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,如果键不存在,设置默认值,存在不做任何改变。

原创粉丝点击