Python进阶之路 4.4 列表的方法

    xiaoxiao2022-07-13  135

    4.4 列表的方法

    在之前的章节中已经接触过什么是函数,在这里再接触一个新的概念:方法。其实方法和函数非常类似,只是函数是全局的,而方法需要定义在类中,需要通过对象引用。刚刚说了,只接触一个概念,这又蹦出个类和对象的概念。其实这些概念都是面向对象的核心,尽管现在还没有讲到面向对象的知识,但由于列表必须要涉及这些概念,所以才提前说了这些概念,不过这一节并不是要去学习这些概念,知识让大家知道有这些概念的存在。在后面更高级的编程中会讲到这些概念以及用法。

    现在,你只需要知道,引用一个方法需要使用下面的格式。

    对象.方法(参数)

    在调用方法时,除了对象要放到方法前面,方法调用与函数调用类似。列表提供了一些方法,用于检查和修改列表中的内容。我现在将一些常用的方法列出来,大家可以看一下:

    ▨ append: 在列表最后插入新的值 ▨ clear: 用于清除列表的内容 ▨ copy: 用于赋值一个列表 ▨ count: 用于统计某个元素在列表中出现的次数 ▨ extend: 用于在列表结尾插入另一个列表,也就是用新列表扩展原有的列表。有点类似列表相加,不过extend方法改变的是被扩展的列表,而列表相加产生的是一个新列表。 ▨ index: 用于从列表中找出某个值第一次出现的索引位置 ▨ insert: 用于将值插入到列表的指定位置 ▨ pop: 用于移除列表中的元素(默认是最后一个元素),并返回该元素的值 ▨ remove: 用于移除列表中某个值的第一次匹配项 ▨ reverse: 用于将列表中的元素反向存放 ▨ sort: 用于对列表进行排序,调用该方法会改变原来的列表排序

    [例 4.31] 本例演示了如何使用上面的所有方法操作列表,所以本例比较长,希望大家耐心看下去,因为这些基础很重要。

    print('------测试append方法------') #在列表最后插入新的值 numbers = [1,2,3,4,5] numbers.append(6) #将6添加到numbers列表的最后一位 print(numbers) #输出结果:[1, 2, 3, 4, 5, 6] numbers.append([7,8]) #将列表[7,8]作为一个值添加到numbers列表后面 print(numbers) #输出结果:[1, 2, 3, 4, 5, 6, [7, 8]] print('------测试copy方法------') #用于清除列表的内容 a = [1,2,3,4] b = a #a和b指向了同一个列表 b[1] = 30 #修改了b的第1索引元素值,a列表中对应的元素值也会随之改变 print(a) #输出结果:[1, 30, 3, 4] aa = [1,2,3] bb = aa.copy() #把aa列表复制一份,并赋值给bb bb[1] = 30 #修改bb列表中第1索引元素值,aa列表中的元素值不会有任何变化 print(aa) #输出结果:[1, 2, 3] print('------测试count方法------') #用于统计某个元素在列表中出现的次数 search = ['he','new','he','he','world','peter',[1,2,3,4],'ok',[5,6,7,8]] #搜索'he'在search列表中出现的次数 print(search.count('he')) #输出结果:3 #搜索[1,2,3,4]在search列中出现的次数 print(search.count([1,2,3,4])) #输出结果:1 print('------测试extend方法------') #用于在列表结尾插入另一个列表,也就是用新列表扩展原有的列表。有点类似列表相加,不过extend方法改变的是被扩展的列表,而列表相加产生的是一个新列表。 a = [1,2,3] b = [4,5,6] a.extend(b) #将b列表接在a列表的后面,extend方法并不返回值 print(a) #输出结果:[1, 2, 3, 4, 5, 6] #如果使用列表连接操作,效率会更低,并不建议使用这样的操作 a = [1,2,3] b = [4,5,6] print(a + b) #输出结果:[1, 2, 3, 4, 5, 6] #可以使用分片赋值的方法实现同样的效果,不过这样的方法比较复杂 a = [1,2,3] b = [4,5,6] a[len(a):] = b print(a) #输出结果:[1, 2, 3, 4, 5, 6] print('------测试index方法------') #用于从列表中找出某个值第一次出现的索引位置 s = ['I','love','python'] print(s.index('python')) #查询'python'的索引你位置,输出结果:2 print("wxyz在列表中不存在,所以会抛出异常") #s.index('wxyz') print('------测试insert方法------') #用于将值插入到列表的指定位置 numbers = [1,2,3,4,5,6,7] numbers.insert(3,'hello') #在numbers列表的第4个元素的位置插入一个'hello' print(numbers) #输出结果:[1, 2, 3, 'hello', 4, 5, 6, 7] #同样可以使用分片赋值实现同样的效果 numbers = [1,2,3,4,5,6,7] numbers[3:3] = ['hello'] #使用分片赋值在numbers列表的第4个元素位置插入一个'hello' print(numbers) #输出结果:[1, 2, 3, 'hello', 4, 5, 6, 7] print('------测试pop方法------') #用于移除列表中的元素(默认是最后一个元素),并返回该元素的值 numbers = [1,2,3,4,5] #pop方法返回删除的元素值 print(numbers.pop()) #删除numbers列表中的最后一个元素值,并返回删除的元素值,输出结果:5 print(numbers.pop(0)) #删除numbers列表中的第0个元素值,并返回删除的元素值,输出结果:1 print(numbers) #输出被删除后还剩下的结果:[2, 3, 4] print('------测试remove方法------') #用于移除列表中某个值的第一次匹配项 words = ['he','new','he','yes','no','ha'] words.remove('he') #删除words列表中的第1个'he' print(words) #输出结果:['new', 'he', 'yes', 'no', 'ha'] # words.remove('bye') #删除words列表中不存在的元素,将会抛出异常 print('------测试reverse方法------') #用于将列表中的元素反向存放 numbers = [1,2,3,4,5,6,7,8] numbers.reverse() #将numbers列表中的元素值顺序倒过来 print(numbers) #输出结果:[8, 7, 6, 5, 4, 3, 2, 1] print('------测试sort方法------') #用于对列表进行排序,调用该方法会改变原来的列表排序 numbers = [9,5,6,3,5,1] numbers.sort() #对numbers列表中的元素值按升序的方式排序(默认为升序) print(numbers) #输出结果:[1, 3, 5, 5, 6, 9] values = [6,7,2,9,4,'bb','aa'] #待排序列表的元素类型必须是可以比较的,字符串和数值类型不能直接比较,否则会抛出异常 #values.sort() #抛出异常 #使用sort方法排序,会直接修改原来的列表顺序,如果想要对列表排序,又不影响原来的列表排列顺序,可以使用副本进行排序,使用下面的代码 #方法1:使用分片操作 x = [5,8,4,9,2,3] y = x[:] y.sort() #对副本y进行排序,不会影响x原始列表的排序 print(x) #输出x结果:[5, 8, 4, 9, 2, 3] print(y) #输出y结果:[2, 3, 4, 5, 8, 9] #方法2:使用sorted函数 x = [9,7,4,5,2,3] y = sorted(x) #对x列表的副本y进行排序,不会影响x列表的排序 print(x) #输出x结果:[9, 7, 4, 5, 2, 3] print(y) #输出y结果:[2, 3, 4, 5, 7, 9] #sorted函数可以对任何序列进行排序,例如对字符串进行排序 print(sorted('HelloWorld')) #输出结果:['H', 'W', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r'] x = [7,4,11,13,8] x.sort(reverse=True) #对x列表中的元素值降序的方式进行排序 print(x) #输出结果:[13, 11, 8, 7, 4]

    输出结果:

    ------测试append方法------ [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6, [7, 8]] ------测试copy方法------ [1, 30, 3, 4] [1, 2, 3] ------测试count方法------ 3 1 ------测试extend方法------ [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] ------测试index方法------ 2 wxyz在列表中不存在,所以会抛出异常 ------测试insert方法------ [1, 2, 3, 'hello', 4, 5, 6, 7] [1, 2, 3, 'hello', 4, 5, 6, 7] ------测试pop方法------ 5 1 [2, 3, 4] ------测试remove方法------ ['new', 'he', 'yes', 'no', 'ha'] ------测试reverse方法------ [8, 7, 6, 5, 4, 3, 2, 1] ------测试sort方法------ [1, 3, 5, 5, 6, 9] [5, 8, 4, 9, 2, 3] [2, 3, 4, 5, 8, 9] [9, 7, 4, 5, 2, 3] [2, 3, 4, 5, 7, 9] ['H', 'W', 'd', 'e', 'l', 'l', 'l', 'o', 'o', 'r'] [13, 11, 8, 7, 4]
    最新回复(0)