列表和元组

  1. 数据结构:
    列表和元组_第1张图片

    数据结构:通过某种方式将数据元素组织在一起,这个数据元素集合称为数据结构。 

    序列:最基本的数据结构。【0,1,2,···,n-1】或者【-n,···,-3,-2,-1】

    列表、···、xrange对象:Python的6种内建序列。

  2. 通用序列操作:
    包括:索引、分片、加、乘。
    • 序列:
      >>>edward = ['Edward Gumby', 42]
      >>>john = ['John Smith', 40]
      >>>database = [edward, john]
      >>>database
      [['Edward Gumby', 42], ['John Smith', 40]]
      
    • 索引:
      >>>edward[0]
      'Edward Gumby'
      >>>edward[0][0]
      'E'
      >>>edward[0][-1]
      'y'
      
    • 分片:
      >>>numbers = [1, 2, 3, 4, 5]
      # 1:默认步长 >>>numbers[0] 1 >>>numbers[0:1] [1]
      >>>numbers[4:5]# 虽然索引5元素不存在,但是列表的边界
      [5] >>>numbers[-3:] [3, 4, 5] >>>numbers[:3] [1, 2, 3] >>>numbers[:] [1, 2, 3, 4, 5]
      # 2:设置步长,注:步长为整数,从左往右,步长为负数,从右往左;开始点元素在结果内,结束点不在;步长为负数时,开始点大于结束点
      >>>numbers[::1]
      [1, 2, 3, 4, 5]
      >>>numbers[::2]
      [1,3,5]
      >>>numbers[4:2:-2]
      [5]
    • 相加:
      只有类型相同的序列才可以相加。
      >>>[1, 2, 3] + [4, 5, 6]
      [1, 2, 3, 4, 5, 6]
      >>>[1, 2, 3] + 'Hello'
      Error
    • 乘法:
      >>>'python' * 5
      'pythonpythonpythonpythonpython'
      # None 是空值,无
      >>>[None] * 5
      [None, None, None, None, None]
      >>>len([None]*5)
      5
      >>>len([]*5)
      0
    • 成员资格:
      >>>numbers = [1, 2, 3, 4, 5]
      >>>[5] in numbers
      False
      >>>5 in numbers
      True 
  3. 列表:
    列表可变。
    • list函数:
      # 将字符串转为列表
      >>> somelist = list('Hello') >>> somelist ['H', 'e', 'l', 'l', 'o']
      # 将列表转为字符串 >>> str.join(somelist) Error >>> ''.join(somelist) 'Hello' >>> str=''.join(somelist) >>> str 'Hello' >>> str='' >>> str '' >>> str.join(somelist) 'Hello'

      注:list()函数适用于所有类型的序列

    • 基本的列表操作:
       索引、分片、相加、乘法 + 元素赋值(不能为一个位置不存在的元素赋值)、元素删除、分片删除
      >>> x=[1,1,3]
      # 元素赋值
      >>> x[1]=2
      >>> x
      [1, 2, 3]
      # 元素删除
      >>> del x[1]
      >>> x
      [1, 3]
      # 连续分片赋值,序列长度可以不一致
      >>> x[1:4]=[2,3,4,5]
      >>> x
      [1, 2, 3, 4, 5]
      >>> x[5:5]=[1,2,3,4,5]# 在最后一个列表后赋值
      >>> x
      [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
      >>> x[5:10]=[]# 删除元素
      >>> x
      [1, 2, 3, 4, 5]
      # 不连续分片赋值,序列长度必须一致 >>> x=[1,2,3,4,5,6,7,8,9,10]
      >>> x[9:5:-2]
      [10, 8]
      >>> x[9:5:-2]=[0]
      ValueError: attempt to assign sequence of size 1 to extended slice of size 2
      >>> x[9:5:-2]=[0,0]
      >>> x
      [1, 2, 3, 4, 5, 6, 7, 0, 9, 0] # 元素赋值与分片赋值 >>> x=[]
      >>> x[0]=1
      Error
      >>> x[0:0]=[1]
      >>> x
      [1]
    • 列表方法:
      append():在列表末尾追加新的对象。它不是简单地返回一个修改过的新列表,而是直接修改原来的列表。
      >>> x=[1,2,3]
      >>> x.append(4)
      >>> x
      [1, 2, 3, 4]
      count():统计某个元素在列表中出现的次数。
      >>> x=[[1,2],1,1,[2,1,[1,2]]]
      >>> x.count(1)
      2
      >>> x.count([1,2])
      1
      
      extend():在列表的末尾一次性追加另一个序列中的多个值。
      >>> a=[1,2,3]
      >>> b=[4,5,6]
      >>> a+b
      [1, 2, 3, 4, 5, 6]
      >>> a
      [1, 2, 3]
      >>> a.extend(b)
      >>> a
      [1, 2, 3, 4, 5, 6]
      index():从列表中找出某个值第一个匹配项的索引位置。
      >>> lst=['a','b','c','d','e']
      >>> lst.index('b')
      1
      >>> lst[1]
      'b'
      >>> a.index(1)
      ValueError: 1 is not in list
      insert():将对象插入列表中。
      >>> num=[1,2,3,5]
      >>> num.insert(3,"four")
      >>> num
      [1, 2, 3, 'four', 5]
      # 之前的分片赋值也实现了此功能,但可读性没有insert()好。
      pop():移除列表中的一个元素,并返回该元素的值。
      >>> x=[1,2,3,4,5]
      >>> x.pop()
      5
      >>> x
      [1, 2, 3, 4]
      >>> x.pop(0)
      1
      >>> x
      [2, 3, 4]
      >>> x.append(x.pop())
      >>> x
      [2, 3, 4]
      remove():移除列表中某个值的第一个匹配项。
      reserve():将列表中的元素反向存放。
      sort():在原位置对列表进行排序。
      高级排序:
  4. 元组:
    元组不可变。
    • tuple函数:
    • 基本的元组操作:
    • 元组方法:
  5. 小结:
     

你可能感兴趣的:(列表和元组)