前言

方法是与对象(列表、数、字符串等)联系紧密的函数,调用方式为 object.method(arg),方法调用和函数调用很像。这里主要列举列表中常用的几个方法。

1.append

append 用于将一个对象附加到列表末尾。

需要注意的是,append 只是修改原列表,不会返回修改过后的新列表。>>> a = [1,2,3]

>>> a.append(4)

>>> a

[1, 2, 3, 4]

2.clear

clear 用于清空列表的内容。>>> a = [1,2,3,4]

>>> a.clear()

>>> a

[]

这类似于切片中赋值语句a[:] = []

3.copy

copy 用于复制列表。

常规的复制只是将一个名称关联到另一个列表,如下:>>> a = [1,2,3]

>>> b = a

>>> b[1] = 5

>>> a

[1, 5, 3]

这里修改了 b 列表的值,a 列表也跟着变了,这种复制方式只是相当于给同一个列表重新命名而已,如果要让a 和 b 指向不同的列表,就需要将 b 关联到 a 的副本。如下:>>> a = [1,2,3]

>>> b = a.copy()

>>> b[1] = 6

>>> a

[1, 2, 3]

这类似于使用 a[:]或者 list(a),这两个也是复制 a

4.count

count 用于计算指定的元素在列表中出现的次数。

如下示例:>>> a = [1,1,2,3,4,4,4,5]

>>> a.count(4)

3

5.extend

extend能够将多个值附加到列表末尾,如下示例:>>> a = [1,2,3]

>>> b = [4,5,6]

>>> a.extend(b)

>>> a

[1, 2, 3, 4, 5, 6]

这个方法类似于拼接,注意这里没有返回值,并且 extend 会直接修改被扩展的序列,比如这里的 a,这和常规的拼接(直接用“+”号连接起来)有点不同, 常规拼接是返回一个新的列表,而原有列表并没有变化,如下示例:>>> a = [1,2,3]

>>> b = [4,5,6]

>>> a + b

[1, 2, 3, 4, 5, 6]

>>> a

[1, 2, 3]

所以 extend 方法和常规拼接有不同之处。如果直接将常规拼接赋值给a,如下:

a = a + b

这样拼接的效率会比 extend 低。

还可以通过切片赋值的方式来实现同样的效果,如下:>>> a = [1,2,3]

>>> b = [4,5,6]

>>> a[len(a):] = b

>>> a

[1, 2, 3, 4, 5, 6]

虽然效果是一样的,但是这样写的代码可读性会比较差。

6.index

index 的作用是在列表中查找指定值第一次出现的索引:>>> a = [1,1,2,3,4,3]

>>> a.index(3)

3

注意,这里一定是只返回查找值第一次出现的索引,顺序从左到右。如果列表中不存在该值,将会引发异常。

7. insert

insert 方法是用于将一个对象插入列表中。>>> a = [1,2,3,4]

>>> a.insert(1,7)

>>> a

[1, 7, 2, 3, 4]

8.pop

方法 pop 是从列表中删除列表中最后一个元素,并将其返回。>>> a = [1,2,3,4]

>>> a.pop()

4

>>> a.pop()

3

>>> a

[1, 2]

pop 是唯一既可以修改列表又返回一个非 None 值的列表方法

9.remove

方法 remove 用于删除第一个为指定值的元素。>>> a = [1,2,3,4,5,2,3,2]

>>> a.remove(2)

>>> a

[1, 3, 4, 5, 2, 3, 2]

注意,这里只删除第一个指定值,从左到右顺序。remove 是就地修改但不返回值的方法之一。

10.reverse

reverse 按相反的顺序排列列表中的元素。>>> a = [1,2,3,4]

>>> a.reverse()

>>> a

[4, 3, 2, 1]

注意,reverse 也是就地修改列表,但是不返回任何值。

11.sort

sort 用于对列表就地排序。就地排序就是说对原来的列表进行修改,使其元素按顺序排列,而不是返回排序后的列表的副本。>>> a = [4,5,6,1,2]

>>> a.sort()

>>> a

[1, 2, 4, 5, 6]

如果仅仅需要排序后的列表副本 并且要保留原有的列表不变时,可以先将原有列表复制一份,然后再进行排序,如下:>>> a = [4,5,6,1,2]

>>> b = a.copy()

>>> b.sort()

>>> a

[4, 5, 6, 1, 2]

>>> b

[1, 2, 4, 5, 6]

这里不能用简单的赋值,如果赋值那么 a 和b 就指向同一个列表。

为获取排序后列表的副本,另一种方式是使用函数 sorted>>> a = [4,5,6,1,2]

>>> b = sorted(a)

>>> a

[4, 5, 6, 1, 2]

>>> b

[1, 2, 4, 5, 6]

12.高级排序

方法 sort 有接受两个可选参数 key 和 reverse。这两个参数通常是按名称来指定的,称为关键字参数。key 就是指定需要按照什么属性来进行排序,而 rerverse 是指定是否要按照相反顺序来进行排序。

如下,按照长度来进行排序:>>> a = ['word','aa','hello','waq']

>>> a.sort(key = len)

>>> a

['aa', 'waq', 'word', 'hello']>>> a = [3,1,4,5,2]

>>> a.sort(reverse = True)

>>> a

[5, 4, 3, 2, 1]

sorted 也接受key 和 reverse 两个参数,在很多情况下,将参数 key 设置成一个自定义函数将会很有用。

python列表常用方法实践_Python 之列表的常用方法相关推荐

  1. python列表常用方法实践_python 列表list 常用方法

    stus = [] #空的列表 stu2 = list() #空的列表 stus = ["fff", "zzz", "aaa"] #增 st ...

  2. python 列表算平均分_python平均列表

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我有一个列表:类似: data = , , , ] 我想把这个算出来... 本节 ...

  3. python列表方法语句_Python中列表和元组的相关语句和方法讲解

    列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...

  4. python列表功能默写_Python list(列表)功能详解

    Python List append()方法 描述 append() 方法用于在列表末尾添加新的对象. 语法 append()方法语法: list.append(obj) 参数 obj -- 添加到列 ...

  5. python列表换行输出_Python从列表转换为字符串时处理换行符

    我有一个关于换行符和返回字符的问题.呃,这很难解释,但我会尽力的. 我有列表形式的数据.列表的成员中有换行符,因此. 1 2 3example_list = ["I've always lo ...

  6. python两两组合_python – 一个列表中的两个组合列表

    我是一个Python初学者.我想从一个列表中获取两个组合列表. 例如,我有一个列表: c = [1, 2, 3, 4] 我想使用每四个项目来获得每个可能的组合来填充两个列表.将会有((2 ^ 4)/ ...

  7. python常用关键字意思_Python 关键字列表及示例

    本教程提供有关Python中使用的所有关键字的简要信息. 关键字是Python中的保留字.我们不能将关键字用作变量名,函数名或任何其他标识符. 这是Python编程中所有关键字的列表 上述关键字可能会 ...

  8. python嵌套列表元素和_Python嵌套列表内部比较和编辑

    a = [[1, 2, 4], [2, 5], [0, 3, 7, 8], [12, 3, 6], [18, 14]] result = [] for s in a: s = set(s) for t ...

  9. python列表添加字符串_python字符串,列表常用操作

    24天养成一个好习惯,第五天! 一.字符串需要掌握的操作 1.取值(索引取值)需要注意的是只能取,不能改 1 msg = 'hello world' 2 print(msg[4]) 2.切片(顾头不顾 ...

最新文章

  1. G - Bad Hair Day (单调栈)
  2. 开源!《模式识别与机器学习(PRML)》笔记、代码、NoteBooks 发布
  3. boost::hana::is_subset用法的测试程序
  4. 【日常小记】linux中强大且常用命令:find、grep
  5. 2018牛客网暑期ACM多校训练营(第十场)A Rikka with Lowbit (树状数组)
  6. Design Compiler指南——预综合过程
  7. 用户模式 内核模式 linux,linux – “内核模式”和“用户模式”硬件...
  8. 从零开始的全栈工程师——js篇2.12(面向对象)
  9. 配置spring事务管理的几种方式(声明式事务)
  10. 苹果cmsV10仿哈哩哈哩动漫自适应模板
  11. 商品WEB开发的商品定单与存储过程的应用
  12. php 安全基础 附录 A. 配置选项
  13. bzoj2821 作诗(Poetize)分块+二分
  14. java string对象放在什么区域_java中String对象的存储位置
  15. java双引号的转义字符_好程序员Java教程分享常见的转义字符
  16. Internet Explorer 8 Beta1 开始测试,且含简体中文版
  17. 本学期关于Android学习的总结
  18. 计算机网络三种模型(OSI模型、TCP/IP模型、五层通用模型)、各层作用
  19. 会话管理:Cookie和Session
  20. 【修真院“正直”系列之三】【修真神界】【修行卷】【第一章】修真院入场券...

热门文章

  1. iOS PassKit Wallet 开发(Passbook 开发)
  2. 抖音开发平台发私信给用户
  3. 改进StyleGANv2的容貌年龄预测系统
  4. html+css+javascript实现520告白爱情树(含音乐)程序员表白必备
  5. VBA数组的赋值讨论
  6. 李峋同款爱心代码,表白神器!
  7. 基于matlab的自动人脸识别系统GUI设计
  8. Android UI设计规范
  9. mysql数据库同步工具_mysql同步工具_mysql数据库同步
  10. Ubuntu查看端口和释放端口