对象的方法

什么是对象的方法

前面我们已经学习过了一些类型的对象,比如整数类型对象、字符串类型对象、列表类型对象、元组类型的对象等等。

而对象是有 方法(英文叫 method )的。

前面我们学过函数, 对象的方法其实可以看成是对象所拥有的函数

也就是说 这个方法,是 属于 这个对象的函数。

调用对象的方法,和调用函数差不多,只要在前面加上 所属对象一个点

比如:

var1 = [1,2,3,4,5,6,7]
var1.reverse()
print(var1)

这里, reverse就是列表对象的一个方法,该方法将列表元素倒过来。

var1.reverse() 语句就会将列表变量var1 里面的元素倒过来存放。

运行结果就是 var1就变成了 [7, 6, 5, 4, 3, 2, 1]

对象的方法是和这个对象 类型 紧密相关的。

对象是什么类型,就决定了对象有哪些方法。

字符串有字符串的方法,列表有列表的方法,元组有元组的方法。



字符串的方法

字符串对象就有很多方法,用来执行和这个字符串相关的操作

  • count

    count 方法可以返回字符串对象包含了多少个参数指定的字符串

      # 调用字符串的count 方法,这里返回2,
      # 表示该字符串包含了两个 '我们'
      '我们今天不去上学,我们去踢足球'.count('我们')
    



  • find

    find 方法 会在字符串中查找 参数 子字符串,并返回该 参数字符串 在其中第一个出现的位置索引

      str1 = '我们今天不去上学,我们去踢足球'
    
      # 返回 0 , str1字符串中有两个 '我们'
      # find返回的是第一个 '我们' 的索引 0
      pos1 = str1.find('我们')  
    
    


    find 方法 的第二个参数,用来指定查找字符串范围,比如

      str1 = '我们今天不去上学,我们去踢足球'
    
      # 第2个参数 5, 表示从 索引 5 的位置开始往后查找
      # 返回的是后面 我们 的索引  9
      pos1 = str1.find('我们',5)  
    



  • split

    split 是我们常用的方法,经常用来从字符串中 截取 出我们想要的信息。

    split 方法以参数字符串为分割符 ,将字符串 切割为多个 字符串,作为元素存入一个列表,并返回这个列表。

    看看下面的例子

      str1 = '小张:79 | 小李:88 | 小赵:83'
      pos1 = str1.split('|')  
    

    这里 split方法指定用 | 作为源字符串str1的分割符, 这样 原来的字符串 就被分成了 3个部分

      小张:79
    
      小李:88
    
      小赵:83
    

    最红将这个三个字符串存入一个列表中返回,返回的结果就是

      [
          '小张:79 ',
          ' 小李:88 ',
          ' 小赵:83'
      ]
    

    大家要注意,分隔符本身在切割后,会被丢弃掉,所以切割后的字符串中不会有分隔符。


    可能有的读者会注意到上面的3个字符串不对齐,

    这不是我们的笔误。

    原来的字符串,被切开后,分隔符前面有的空格字符,会保留下来。

    小张 前面没有空格,所以切割后,切割出来的结果就没有空格。

    小李小赵 前面是有空格的,切割出来的结果就有空格


    不一定非要用 竖线分割, 我们可以指定任何其他的分隔符来分割字符串,比如

      '小张:79 | 小李:88 | 小赵:83'.split('小赵')
    

    这样就是以 小赵 这个字符串为界 ,分割。返回结果如下

      [
          '小张:79 | 小李:88 | ',
          ':83'
      ]
    



  • join

    join 方法和 split方法正好相反

    split 是将字符串, 以 某字符串 为界, 切割 成多个字符串, 存入列表

    join 是将列表中的字符串元素 以某字符串为连接符, 连接 为一个字符串

    比如

      '|'.join([
          '小张:79 ',
          ' 小李:88 ',
          ' 小赵:83'
      ])
    
    返回的就是字符串 ‘小张:79 小李:88 小赵:83’ 。

    相当于把参数列表里面的字符串连接在一起, 中间加上指定的连接符 |


    再比如

      '小赵'.join([
          '小张:79 | 小李:88 | ',
          ':83'
      ])
    
      返回的就是字符串  '小张:79 | 小李:88 | 小赵:83' 
    

    相当于把参数列表里面的字符串连接在一起, 中间加上指定的连接符 小赵



  • strip 、 lstrip 、 rstrip

    strip方法可以将 字符串前面和后面的空格删除,但是不会删除字符串中间的空格

    比如

      '      小  李:88       '.strip() 
    
      返回的就是 '小  李:88',去掉了前后的空格,但是中间的空格不会去掉
    


    lstrip方法 将 字符串前面 (左边) 的空格删除,但是不会删除字符串中间和右边的空格

    比如

      '      小  李:88       '.lstrip() 
        
      返回的就是 '小  李:88       '
    


    rstrip方法 将 字符串后面 (右边) 的空格删除,但是不会删除字符串中间和左边的空格

    比如

      '      小  李:88       '.rstrip() 
        
      返回的就是 '      小  李:88'
    



  • replace

    replace 也是常用的方法,用来 替换 字符串里面 所有指定的 子字符串 为另一个 字符串

    比如

      str1 = '我们今天不去上学,我们去踢足球'
      str1 = str1.replace('我们', '他们')  
    

    上面的replace方法就会把字符串中所有的我们,替换成他们

    结果就是 '他们今天不去上学,他们踢足球'



  • startswith 和 endswith

    startswith 方法检查字符串是否以参数指定的字符串 开头,如果是,返回True,否则返回False

    endswith 方法检查字符串是否以指定的字符串 结尾,如果是,返回True,否则返回False

      str1 = '我们今天不去上学,我们去踢足球'
      str1.startswith('我们')  # 返回 True
      str1.endswith('我们')    # 返回 False
    



列表的方法



  • append

    前面说过列表是一种 内容可改变的 对象。

    append方法就会改变列表的内容,在后面添加一个元素

    比如

    a = [1, 2, 3.14, 'hello']  
    
    # append 之后,a就变成了 [1, 2, 3.14, 'hello', '你好']
    a.append('你好')
    print(a)
    
      
    # 继续append ,a就变成了 [1, 2, 3.14, 'hello', '你好', [7,8]]
    a.append([7,8]])
    print(a)
    


  • insert

    如果我们 不是要在后面 添加一个元素, 而是在 指定位置插入一个元素,就可以使用insert方法

    比如

    a = [1, 2, 3.14, 'python3.vip']  
    
    # 插入到索引0的位置,也是插到第1个元素的位置上
    # a列表内容就变成了 ['你好', 1, 2, 3.14, 'python3.vip']
    a.insert(0, '你好')
    print(a)
    
      
    # 插入到索引2的位置,也是插到第3个元素的位置上
    # a列表内容就变成了 ['你好', 1, '黑羽',  2, 3.14, 'python3.vip']
    a.insert(2, '黑羽')
    print(a)
    


  • pop

    如果我们要从列表 取出并删除 一个元素,就可以使用pop方法。

    该方法的参数就是要取出的元素的索引

    注意,取出后,该元素就从列表中删除了。所以pop也经常用来删除某个元素

    比如

    a = [1, 2, 3.14, 'python3.vip']  
    
    # 取出索引为3 的元素,也就是第4个元素
    poped = a.pop(3)
      
    # 取出后,a列表对象内容就变成了 [ 1, 2, 3.14]
    print(a)
      
      
    # 而取出的元素赋值给变量poped, poped的内容就是 'python3.vip'  
    print(poped)
    


  • remove

remove方法也是删除列表元素。

pop方法的参数是要删除元素的 索引

而 remove方法的参数就是要删除元素的

remove从第1个元素开始,寻找 和参数对象 相等的元素,如果找到了,就删除。

找到后,不会继续往后寻找其它相等的元素。

也就是说remove 最多只会删除1个元素。

比如

var1 = ['a','b','c','a']
var1.remove('a')
print(var1)

运行结果 var1就变成了 [‘b’, ‘c’, ‘a’]。

可以发现,只删除了第一元素’a’, 最后的 ‘a’ 并么有删除。


  • reverse

reverse方法将列表元素倒过来

var1 = [1,2,3,4,5,6,7]
var1.reverse()
print(var1)

运行结果 var1就变成了 [7, 6, 5, 4, 3, 2, 1]




课后练习

去做练习

上一页 下一页