Python 之列表的常用方法
前言
方法是与对象(列表、数、字符串等)联系紧密的函数,调用方式为 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列表转换成数字_python 字母转成数字Python操作列表的常用方法总结
下面列出列表常用的方法操作列表以及小例子: 1. Append 在列表末尾添加元素,需在列表末尾添加元素,需要注意几个点: A. append中添加的参数是作为一个整体 >>> n ...
- python列表的小东西_小谈python里 列表 的几种常用用法
在python中列表的常用方法主要包括增加,删除,查看和修改.下面以举例子的方法具体说明,首先我们创建两个列表,列表是用[ ]表示的,里面的元素用逗号隔开. a=['hello',78,15.6,'你 ...
- python字符串,列表,字典的常用方法
本篇内容 字符串的常用方法 列表的常用方法 字典的常用方法 字符串的常用方法 center 字符居中显示,指定字符串长度,填充指定的填充字符 string = "40kuai" p ...
- python列表常用方法_第24p,必须掌握,列表的常用方法
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第24篇文章,第二阶段的课程:Python基础知识:Python中的列表之列表的常用方法. 学习本课程,建议先看一遍:[计算机基础知 ...
- 孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法
孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) (同步的语音笔记朗读:https://www.ximalaya.com/keji/1 ...
- python的列表和元组
一.序列 成员有序排列的,且可以通过下标偏移量访问到它的一个或者几个成员,这类类型统称为序列. 序列数据类型包括:字符串,列表,和元组类型. 特点: 都支持下面的特性 索引与切片操作符 成员关系操作符 ...
- Python的列表推倒式、生成器及迭代器
Python的列表推倒式.生成器及迭代器 文章目录 Python的列表推倒式.生成器及迭代器 一.列表推倒式 **`1.列表推导式`** **`2.字典推导式`** **`3.集合推导式`** 二.生 ...
- 一起学Python:列表介绍
列表介绍 想一想: 前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢?定义100个变量,每个变量存放一个学生的姓名可行吗?有更好的办法吗? 答: 列表 <1> ...
- [Python基础]列表List
列表List 0.概述 1.创建列表 2.向列表添加元素 append(val) extend(val) insert(index,val) 3.从列表中获取元素 4.从列表删除元素 remove(v ...
最新文章
- 稀疏性如何为AI推理增加难度
- 9.65 最长上升子序列
- Linux工具之curl与wget高级使用
- Tmux终端复用工具小解
- win7(64)与samba不兼容
- 利用BBRSACryptor实现iOS端的RSA加解密
- 如何缩小码农和高手的差距
- HugeGraph 多图配置
- 【转】TLB(Translation Lookaside Buffers,TLB)的作用
- 美团陶云霜:CRM平台建设实践(胶片)
- async await Task
- 节点通讯共享信息的问题
- 如何修改电脑的MAC地址(手把手更改)
- CSS 3之设置图片边框
- 【EXLIBRIS】#小词旮旯# 006 Wake
- java 输入一个时间,获取当前周的周一以及周五时间【自然周】
- 用java写的游戏you_关于用Java写的贪吃蛇游戏的一些感想
- 标准化(standardization,z-score)与归一化(Normalizer)分别是什么?有什么区别?
- 上美股份在港交所开启招股:业绩将继续下滑,吕义雄提前大额套现
- Oracle数据库表空间不足 ORA-01653:unable to extend table 表名称 by 8192 in tablespace 表空间名称
热门文章
- 网易云信助力长沙银行打造远程视频银行 | 字母点评数字化先锋案例
- LeetCode_链表类
- 数据结构_串_mindmap+LeetCode_344.反转字符串(Java、C)
- 聊聊spring tx的EnableTransactionManagement
- Console-算法[for]-打印出杨辉三角形
- gulp 常用插件汇总
- 关于眼界、眼光、眼前的哪些....
- 版本控制工具Git 常用操作命令
- 学了近一个月的java web 感想
- 在大规模系统中使用Scala