python 列表 字典(2)

来源:互联网 发布:unity3d 自发光材质 编辑:程序博客网 时间:2024/06/15 03:50
#列表:
   #1 有序的集合,可变的,包含任何种类的对象
   #2 通过偏移读取
   #3 可变长度,异构以及任意嵌套
   #4 属于可变序列分类
   #5 对象引用数组,pyhton中的列表包含了零个或多个其他对象的引用


#实际应用中的列表
   >>>len([1,2,3])
   3
   >>>[1,2]+[3,4]
   [1,2,3,4]
   >>>['Ni!']*4
   ['Ni!','Ni!','Ni!','Ni!']
   #注意 + 号的两边要是同一个类型
   # str([1,2])+"34"    --->'[1,2]34'
   # [1,2]+list("34")   --->[1,2,'3','4']


#列表的解析与迭代
   #1
    for x in [1,2,3,4,5]:
       print x
   #2
     res = []  
     for x in 'hello':
         res.append(x*4)
   #3
     >>> list(map(abs,[-1,-2,0,1,2]))
     [1,2,0,1,2]
# 对列表索引的结果就是你指定的偏移处的对象
# 对列表分片往往返回一个新的列表,注意分片的赋值是删除加插入

   >>> L = ['11','22','33','44']
   >>> L[2]
   '33'
   >>>L[-2]
   '22'
   >>>L[1:]
   ['22','33','44']
   #python 只处理引用
   #列表方法的调用
     append  追加元素至列表的末端
     sort    排序
     注意sorted ,reversed为 python的内置函数
   >>> L = [1,2]
   >>> L.extend([3,4,5])
   >>> L
   [1,2,3,4,5]
   >>> L.pop()
   5
   >>>L
   [1,2,3,4]
   >>>L.reverse()
   >>>L
   [4,3,2,1]
   >>>list(reversed(L))
   [1,2,3,4]
   #pop  append 联用实现栈
   #insert  , remove  , index


#字典
 # 字典通过键而不是偏移量来读取
 # 任意对象的无序集合
 # 可变长 ,异构 ,任意嵌套
 # 可变映射类型 ,唯一的映射类型
 # 对象引用表(散列表)


 #构建字典
   (1)D = { }
   (2)D = {'spam':2,'eggs':3 }
   (3)D = dict.fromkeys(['a','b'])
   (4)D = dict(zip(keyslist,valslist))
   (5)D = dict(name='Bob',age=42)
 # 实际应用的字典 
     # 通过键来索引
        >>> D = {'spam':2,'ham':1,'eggs':3}
        >>>D['spam']
        2
     # 字典的内建由左至右的次序总是和原先输入的顺序不同,设计的目的是为了快速执行键查找(散列查找)   
     # 内置len函数可用于字典,它能返回存储在字典的元素的数目 ,与keys列表的长度等价 ,字典
     # 的has_key方法与in成员关系操作提供了键存在与否的测试方法,keys方法返回字典中的所用键,
     # 收集在一个列表中


     # 字典的其他方法
       values()
       items ()
       get()
       update()类似于合并,
       pop()


    # 字典用于稀疏数据结构:
       〉〉〉   Matrix = {}
       〉〉〉   Matrix [(2,3,4)] = 88
       〉〉〉   Matrix [(7,8,9)] = 99
       >>> x=2; y=3; z=4
       >>> Matrix[(x,y,z)]
       88
       >>>Matrix
       [(2,3,4):88 ,(7,8,9):99]
       # 避免missing-key
          (1) if语句中预先对键进行测试
              if (2,3,6) in Matrix:
                  xxxx
              else:
                  xxxx
          (2) try语句明确的捕获并修复这一异常
              try:
                  print(Matrix[(2,3,6)])
              except KeyError:
                  print 
          (3) get方法为不存在的键提供一个默认值
              Matrix.get((2,3,4),0)
       # 字典做索引的记录   
          res = {'r1':[1,2,3],'r2':'a'}
       # cgi.FieldStorage范围的调用会产生一个类似字典的对象,在客户端网页上每个输入字段
       # 都有一项:
       #   import cgi
       #   form = cgi.FieldStorage()
       #       if 'n' in form:
       #           xxxx
       # 字典适用于Python 各种内置的工具


# Python3.0 字典
      keys, values, items


      >>> D = dict( a=1, b=2, c=3)
      >>> D
      {'a':1, 'c':3, 'b':2}
      >>> K = D.keys()
      >>> K
      >>> list(K)
      ['a' ,'c' ,'b']


      >>> V = D.values()
      >>> V 
      >>> list(V)
      [1,2,3]


      >>> list(D.items())
      [('a',1) , ('c',3) ,('b',2)]


      for key in D:
          print key


      
0 0