(^o^)/~完美 发表于 2015-4-26 10:46:56

python内置数据类型:列表和元组

  序列(列表和元组)
2.2 通用序列操作

1)索引
    从左到右计数(第一个)为0,从右到左计数(最后一个)-1.
    字符串可以直接使用索引:"hello"
2)分片
    提供两个边界作为索引,第一个边界包括,第二个边界不包括。
    numbers = {1,2,3,4,5,6,7,8,9,10}
   
    优雅捷径:
      numbers[-3:-1]   
      numbers[-3:0]    []左边索引必须比右边索引早出现才不是空集
      numbers[-3:]    不填边界表示到最边界处
      numbers[:]    整个列表
    步长:   
      默认步长是1,如果不是1,需要指定
      numbers    指定步长为k
      步长不能为0,但步长可以为负数,为负数时,列表的左右边界应该是从右到左的。
3)序列相加:
    + ["hello"]      
    但列表和字符串不能相加
4)乘法:
    “python” * 2      “pythonpython”
    * 3      
    None 空列表 初始化
5)成员资格:in
    返回布尔值:某个对象是否为一个序列的成员
   
6)长度
    内建函数len,max,min

-----------------------------------------------------------------------------
2.3 列表:
1.list函数
   
    将字符串或其他系列转换成列表
    由于字符串不可变,转换成列表后可以改变:
    list("hello")    ['h','e','l','l','o']
   
    ps:用 ''.join(somelist)可以将一个列表somelist转换成字符串

2.列表基本操作
    1)改变列表:元素赋值   
      不能为一个不存在的索引位置赋值
    2)删除元素
      del names
      删除后列表长度自动缩减,顺序保持
    3)分片赋值
      一次为多个元素赋值
      a 注意在普通赋值时,不存在的索引处不能赋值,但是分片赋值却可以实现使用与原分片不等长的序列将分片替换:
      name = list('perl')
      name = list('ython')
      b 替换一个空分片的分片赋值可以实现插入一个序列
      c 同理,给一个分片赋值一个空的分片可以用来删除这个分片

3.列表方法
   
    1)append
      lst.append(xxx):注意没有返回值!
   
    2)count
      统计某个元素在列表中出现的次数:lst.count(xxx)
    3)extend
      在一个序列的末尾追加另一个序列中的多个值
      a.extend(b) 将b追加到a后面了,a此时改变了
   
    4)index
      names.index('jmz')
      找到列表中第一个匹配项的索引,找不到会引发异常
   
    5)insert
      names.insert(5,'jmz')
      将‘jmz’这个名字插入为索引5位置处
   
    6)pop
      lst.pop() 移除最后一个元素并返回这个移除的元素
      pop方法是唯一一个既能修改列表又能返回元素的方法,注意以上方法中修改列表的方法均不返回值。
   
    7)remove
      names.remove('jmz')删除第一个匹配的项目
   
    8)reverse
      names.reverse()    将列表元素倒序存放
   
    9)sort
      注意也是没有返回值
      x.sort()x变得有序,但这个表达式并不返回值
      y = x.sort并不能将x的有序形式赋值给y
      
      可以这样:
      y = x[:]
      y.sort()
      或者:
      y = sorted(x)
      来实现一样的功能
   
    10)高级排序
      
      cmp参数来指定自己的排序方式:numbers.sort(cmp)
      定义你自己的cmp函数,小于时返回负数,大于时返回正数,相等时返回0
      
      key参数指定排序键:names.sort(key = len)按照长度      
      
      reverse参数指定是否反向排序:number.sort(reverse = true)

-----------------------------------------------------------------------------
2.4 元组学习:不可变序列
    如果你用逗号隔开一些值,那么就自动创建了元组
   
    1)tuple函数
      将字符串,序列转换为元组,如果被转换的本身就是元组,则原样返回。
      tuple()      (1,2,3)
      tuple('hello')      ('h','e','l','l','l','o')
      tuple((1,2,3))      (1,2,3)

-----------------------------------------------------------------------------

总结:
    列表:[]   可变序列
    元组:()    不可变序列
   
    一些方法


  
  
页: [1]
查看完整版本: python内置数据类型:列表和元组