python列表常用方法实践_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 列表list 常用方法
stus = [] #空的列表 stu2 = list() #空的列表 stus = ["fff", "zzz", "aaa"] #增 st ...
- python 列表算平均分_python平均列表
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我有一个列表:类似: data = , , , ] 我想把这个算出来... 本节 ...
- python列表方法语句_Python中列表和元组的相关语句和方法讲解
列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...
- python列表功能默写_Python list(列表)功能详解
Python List append()方法 描述 append() 方法用于在列表末尾添加新的对象. 语法 append()方法语法: list.append(obj) 参数 obj -- 添加到列 ...
- python列表换行输出_Python从列表转换为字符串时处理换行符
我有一个关于换行符和返回字符的问题.呃,这很难解释,但我会尽力的. 我有列表形式的数据.列表的成员中有换行符,因此. 1 2 3example_list = ["I've always lo ...
- python两两组合_python – 一个列表中的两个组合列表
我是一个Python初学者.我想从一个列表中获取两个组合列表. 例如,我有一个列表: c = [1, 2, 3, 4] 我想使用每四个项目来获得每个可能的组合来填充两个列表.将会有((2 ^ 4)/ ...
- python常用关键字意思_Python 关键字列表及示例
本教程提供有关Python中使用的所有关键字的简要信息. 关键字是Python中的保留字.我们不能将关键字用作变量名,函数名或任何其他标识符. 这是Python编程中所有关键字的列表 上述关键字可能会 ...
- 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 ...
- python列表添加字符串_python字符串,列表常用操作
24天养成一个好习惯,第五天! 一.字符串需要掌握的操作 1.取值(索引取值)需要注意的是只能取,不能改 1 msg = 'hello world' 2 print(msg[4]) 2.切片(顾头不顾 ...
最新文章
- G - Bad Hair Day (单调栈)
- 开源!《模式识别与机器学习(PRML)》笔记、代码、NoteBooks 发布
- boost::hana::is_subset用法的测试程序
- 【日常小记】linux中强大且常用命令:find、grep
- 2018牛客网暑期ACM多校训练营(第十场)A	Rikka with Lowbit (树状数组)
- Design Compiler指南——预综合过程
- 用户模式 内核模式 linux,linux – “内核模式”和“用户模式”硬件...
- 从零开始的全栈工程师——js篇2.12(面向对象)
- 配置spring事务管理的几种方式(声明式事务)
- 苹果cmsV10仿哈哩哈哩动漫自适应模板
- 商品WEB开发的商品定单与存储过程的应用
- php 安全基础 附录 A. 配置选项
- bzoj2821 作诗(Poetize)分块+二分
- java string对象放在什么区域_java中String对象的存储位置
- java双引号的转义字符_好程序员Java教程分享常见的转义字符
- Internet Explorer 8 Beta1 开始测试,且含简体中文版
- 本学期关于Android学习的总结
- 计算机网络三种模型(OSI模型、TCP/IP模型、五层通用模型)、各层作用
- 会话管理:Cookie和Session
- 【修真院“正直”系列之三】【修真神界】【修行卷】【第一章】修真院入场券...