列表类型

像字符串类型一样,列表类型也是序列式的数据类型,同样可以通过下标或者切片去进行访问。然而,字符串只能由字符组成,而且不可变,而列表不仅可以包含Python的标准类型,而且要比C或者Python自己的数组类型都要灵活(因为数组类型所有的元素只能是一种类型)。

创建列表类型并给它赋值

  • 列表通过方括号([])来定义:
    aList = [123, 'abc', 4.56, ['inner', 'list'], 7-9j]
    
  • 也可以通过工厂函数list()创建:
    list('foo')
    ['f', 'o', 'o']
    

访问列表的值

列表的切片操作就像字符串一样:

aList[0] ##123
aList[1:4] ##['abc', 4.56, ['inner', 'list']]
aList[3]][1] ##'list'

更新列表

  • 可以通过在等号左边指定一个索引或者索引范围的方式来更新一个或几个元素:
    aList[2] = "def"
    
  • 注意:超出索引会抛出异常
    aList[5] = "hello"
    ###报错
    
  • 我们可以通过append()函数来向列表添加元素:
    aList.append("hello")
    aList ## [123, 'abc', 4.56, ['inner', 'list'], 7-9j, "hello"]
    

删除列表中的元素

删除元素:

  • 通过索引:
    del aList[0]
    
  • 通过元素值:
    aList.remove(123)
    
  • 通过pop([index])函数

      aList.pop() ##删除最后一个元素,并返回
      aList.pop(1) ##删除索引是1的元素,没有这个索引则报错
    

连接操作符(+)

对于连接操作符,我们还是要切记,其左右两边必须是同类型元素,即使都是序列类型也不行。 这里再扩展一个符号:+=,它相当于aList.extend(anotherList)

重复操作符(*)

这里再扩展一个符号:*=

列表解析

PASS,完了再补充

序列类型函数

  • len()

  • sorted()reversed()

      sorted(aList) ##按ASCII码排列
      reversed(aList) ##倒置列表元素
    
  • enumerate()zip()

      albums = ['tables','robot','py']
      for i,album in albums:
          print i, album
      ## 0 tables
      ## 1 robot
      ## 2 py
    

    ++++++++++++++++++++++++++++++++++

      fn = ['ab', 'cd', 'ef']
      ln = ['ba', 'dc', 'fe']
      for i, j in zip(fn, ln):
          print '%s %s' % (i, j)
    
  • sum()

    只能是数字

  • list()tuple()

    列表和元组相互转换

列表类型常用的内建函数

list.append(obj)
list.extend(seq)
list.insert(index,obj)
list.pop(index=-1)
list.remove(obj)
list.reverse()
list.sort()