前言

方法是与对象(列表、数、字符串等)联系紧密的函数,调用方式为 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 之列表的常用方法相关推荐

  1. python列表转换成数字_python 字母转成数字Python操作列表的常用方法总结

    下面列出列表常用的方法操作列表以及小例子: 1.  Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 >>> n ...

  2. python列表的小东西_小谈python里 列表 的几种常用用法

    在python中列表的常用方法主要包括增加,删除,查看和修改.下面以举例子的方法具体说明,首先我们创建两个列表,列表是用[ ]表示的,里面的元素用逗号隔开. a=['hello',78,15.6,'你 ...

  3. python字符串,列表,字典的常用方法

    本篇内容 字符串的常用方法 列表的常用方法 字典的常用方法 字符串的常用方法 center 字符居中显示,指定字符串长度,填充指定的填充字符 string = "40kuai" p ...

  4. python列表常用方法_第24p,必须掌握,列表的常用方法

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第24篇文章,第二阶段的课程:Python基础知识:Python中的列表之列表的常用方法. 学习本课程,建议先看一遍:[计算机基础知 ...

  5. 孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法

    孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) (同步的语音笔记朗读:https://www.ximalaya.com/keji/1 ...

  6. python的列表和元组

    一.序列 成员有序排列的,且可以通过下标偏移量访问到它的一个或者几个成员,这类类型统称为序列. 序列数据类型包括:字符串,列表,和元组类型. 特点: 都支持下面的特性 索引与切片操作符 成员关系操作符 ...

  7. Python的列表推倒式、生成器及迭代器

    Python的列表推倒式.生成器及迭代器 文章目录 Python的列表推倒式.生成器及迭代器 一.列表推倒式 **`1.列表推导式`** **`2.字典推导式`** **`3.集合推导式`** 二.生 ...

  8. 一起学Python:列表介绍

    列表介绍 想一想: 前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢?定义100个变量,每个变量存放一个学生的姓名可行吗?有更好的办法吗? 答: 列表 <1> ...

  9. [Python基础]列表List

    列表List 0.概述 1.创建列表 2.向列表添加元素 append(val) extend(val) insert(index,val) 3.从列表中获取元素 4.从列表删除元素 remove(v ...

最新文章

  1. 稀疏性如何为AI推理增加难度
  2. 9.65 最长上升子序列
  3. Linux工具之curl与wget高级使用
  4. Tmux终端复用工具小解
  5. win7(64)与samba不兼容
  6. 利用BBRSACryptor实现iOS端的RSA加解密
  7. 如何缩小码农和高手的差距
  8. HugeGraph 多图配置
  9. 【转】TLB(Translation Lookaside Buffers,TLB)的作用
  10. 美团陶云霜:CRM平台建设实践(胶片)
  11. async await Task
  12. 节点通讯共享信息的问题
  13. 如何修改电脑的MAC地址(手把手更改)
  14. CSS 3之设置图片边框
  15. 【EXLIBRIS】#小词旮旯# 006 Wake
  16. java 输入一个时间,获取当前周的周一以及周五时间【自然周】
  17. 用java写的游戏you_关于用Java写的贪吃蛇游戏的一些感想
  18. 标准化(standardization,z-score)与归一化(Normalizer)分别是什么?有什么区别?
  19. 上美股份在港交所开启招股:业绩将继续下滑,吕义雄提前大额套现
  20. Oracle数据库表空间不足 ORA-01653:unable to extend table 表名称 by 8192 in tablespace 表空间名称

热门文章

  1. 网易云信助力长沙银行打造远程视频银行 | 字母点评数字化先锋案例
  2. LeetCode_链表类
  3. 数据结构_串_mindmap+LeetCode_344.反转字符串(Java、C)
  4. 聊聊spring tx的EnableTransactionManagement
  5. Console-算法[for]-打印出杨辉三角形
  6. gulp 常用插件汇总
  7. 关于眼界、眼光、眼前的哪些....
  8. 版本控制工具Git 常用操作命令
  9. 学了近一个月的java web 感想
  10. 在大规模系统中使用Scala