Python list 列表方法
Python List 方法
- index() 方法
- count()方法
- append()方法
- extend()方法
- remove()方法
- del()方法
- pop()方法
- reverse()方法
- insert()方法
- sort()方法
假设我们有一个 list
对象
list1 = [1, 1, 2]
index() 方法
index()
方法:找出列表对象中某个元素对应的索引值
举例1
:找出list1
中值为2
的元素所对应的索引值
list1 = [1, 1, 2]
print(list1.index(2))
"""
result:
2
"""
举例2
:找出list1
中值为1
的元素所对应的索引值
list1 = [1, 1, 2]
print(list1.index(1))
"""
result:
0
"""
这里我们看到问题出现了,list1
列表中有两个元素都为1
,但是当我们查找元素1
所对应的索引值时仅仅得到了一个值,这是因为index()
方法会默认从左到右找出第一个符合要求的元素的对应索引值。那么如果我们想要找到第二个元素1
所对应的索引值怎么办呢?
举例3
:找出list1
中第二个值为1
的元素所对应的索引值
list1 = [1, 1, 2]
print(list1.index(1, 1, 2))
"""
result:
1
"""
我们指定了让程序从列表第二个元素开始查找,这样子就可以跳过第一个值为1
的元素,最后我们成功地得到了列表中第二个值为1
的元素的索引值。
那么又会有人说了,这个功能不是很鸡肋,要是列表很长,出现第一个符合要求的第一个元素很靠后,难道我还要去自己数去确定从哪一个元素开始吗?那这程序不写也罢。事实也确实如此,显然上述的方法不够智能,无法满足我们的需求。我们暂时搁置一下这个问题,我们先来讨论一下能否一次性得到所有满足要求的元素的对应索引值呢?
举例4
:找出list1
中值为1
的元素所对应的所有索引值
list1 = [1, 1, 2]
goal_element = 1
start = 0
for element in list1:if element == goal_element:index = list1.index(goal_element, start, -1)start = index + 1print(index)
"""
result:
0
1
"""
我们可以看到上面我们逐个打印出了列表中值等于1
的元素的索引值。其中list1.index(goal_element, start, -1)
表示我们从列表中的第start
个元素进行搜索,到列表中的最后一个元素结束。当然如果我们想要输出更加完整一些,我们可以提前初始化一个新的列表对象index_list
用以保存所有满足条件元素对应的索引值。代码如下:
list1 = [1, 1, 2]
goal_element = 1
index_list = []
start = 0
for element in list1:if element == goal_element:index = list1.index(goal_element, start, -1)start = index + 1index_list.append(index)print(index_list)
"""
result:
[0, 1]
"""
可以看到,此时我们输出了一个列表,其中存放了列表中所有满足条件的元素的索引值。关于append()
函数的用法我们后面会进一步说明。现在我们可以回到刚才的问题了,如何得到列表中第二个值为1
的元素的索引值。我们只需在得到上面index_list
的基础上使用如下代码:
print(index_list[2-1])
"""
result:
1
"""
其中2
表示第二个符合要求的元素,1
表示因为列表的索引值是从0
开始的,所以我们要减去1
。至此,index()
函数的用法暂时告一段落。
count()方法
count()
方法:找出列表对象中某个元素出现的次数
list1 = [1, 1, 2]
print(list1.count(1)) # 找出值为1的元素出现的次数
print(list1.count(2)) # 找出值为2的元素出现的次数
"""
result:
2
1
"""
可以看到,这里我们成功获取到了列表中值为1
的元素出现的次数为2
,值为2
的元素出现的次数为1
。
append()方法
append()
方法:向列表对象的末尾位置添加某个新的元素
list1 = [1, 1, 2]
list1.append("append")
print(list1)
"""
result:
[1, 1, 2, 'append']
"""
可以看到,这里我们成功地向列表对象的末尾添加了一个字符串元素"append"
.
说到向列表中添加元素的方法,就不得不说到另一种方法extend()
。
extend()方法
extend()
方法:采用迭代的方式向列表对象中添加数据
list1 = [1, 1, 2]
list1.append("extend")
list1.extend("extend")
print(list1)
"""
result:
[1, 1, 2, 'extend', 'e', 'x', 't', 'e', 'n', 'd']
"""
可以看到,相较于append()
方法在添加字符串时会将完整的字符串添加进入列表,extend()
方法会将字符串分解为单个的字符逐个添加进入列表中。因此,使用extend()
可以直接以列表的形式向另一个列表中添加元素。来看这个例子:
list1 = [1, 1, 2]
list1.extend(["append", "extend"])
print(list1)
"""
result:
[1, 1, 2, 'append', 'extend']
"""
remove()方法
remove()
方法:删除列表对象某个特定的元素,如果存在多个相同元素,则默认从左到右删除第一个符合要求的元素
list1 = [1, 1, 2]
list1.append("append")
print(list1)
list1.remove("append")
print(list1)
"""
result:
[1, 1, 2, 'append']
[1, 1, 2]
"""
可以看到,这里我们成功地向列表中添加了一个字符串元素"append"
后又使用remove()
方法将其删除了。
这里举一个实例来说明remove()
方法使用的误区—Python 去掉列表中小于某个特定值的所有值(超链接点击跳转)。
del()方法
del()
方法:与remove()
方法相同,也用于删除列表中的元素
那么也许有人会问,既然已经有了删除列表元素的方法了,为什么还要再搞出来一个新的删除方法呢?这是不是多此一举呢?当然不是。每个被创造出来的方法都具有其本身的特性,虽然大多数情况下他们都可以互相通用,但是在特殊的情境下,使用其中的一个肯定优于使用另一个。比如我们想要一次性删除列表对象中的好几个元素,这时使用del()
方法就可以避免使用循环体结构加remove()
方法来进行逐个删除了。
# 使用remove()方法删除list1中的第一个和第二个元素
list1 = [1, 1, 2]
list1.remove(1)
list1.remove(1)
print(list1)
"""
result:
[2]
"""
# del()方法删除list1中的第一个和第二个元素
list1 = [1, 1, 2]
del(list1[:2])
print(list1)
"""
result:
[2]
"""
可以看到,使用del()
方法,可以一次性删除列表对象中的多个值,相较于remove()
方法,更为便捷。
至此,我们已经探究了两种删除列表中元素的方法。接下来我们介绍另一种删除列表中元素的方法。
pop()方法
pop()
:删除列表中给定索引值所对应的元素
list1 = [1, 1, 2]
list1.pop(2)
print(list1)
"""
result:
[1, 1]
"""
可以看到,我们成功地删除了列表中的最后一个元素。
reverse()方法
reverse()
方法:将列表对象的排列顺序反过来
list1 = [1, 1, 2]
print(list1)
list1.reverse()
print(list1)
list1.reverse()
print(list1)
"""
result:
[1, 1, 2]
[2, 1, 1]
[1, 1, 2]
"""
可以看到,第一次使用reverse()
方法我们将列表中的元素排列数序反了过来,第二次使用reverse()
方法,将列表中的元素排列顺序再次翻转得到了初始化时的列表。
insert()方法
insert()
方法:向列表中的特定位置插入给定元素
list1 = [1, 1, 2]
list1.insert(3, "insert")
print(list1)
"""
result:
[1, 1, 2, 'insert']
"""
可以看到,我们成功地向列表的末尾插入了字符串"insert"
。但是使用insert()
方法向列表末尾插入值时需要特别注意不能用使用-1
。来看一段代码:
list1 = [1, 1, 2]
list1.insert(-1, "insert") # 这行代码等同于list1.insert(2, "insert")
print(list1)
"""
result:
[1, 1, 'insert', 2]
"""
可以看到,我们未能将字符串"insert"
插入到列表的末尾位置,而是倒数第二位,那么该使用什么样通用的方法将字符串插入到列表的末尾处呢?
list1 = [1, 1, 2]
list1.insert(len(list1), "insert")
print(list1)
"""
result:
[1, 1, 2, 'insert']
"""
可以看到,我们成功地向列表的末尾插入了字符串"insert"
。
sort()方法
sort()
方法:将列表中的元素进行排序,默认升序
list1 = [1, 1, 2]
list1.sort()
print(list1)
list1.sort(reverse=True)
print(list1)
"""
result:
[1, 1, 2]
[2, 1, 1]
"""
可以看到,因为我们的列表本身是升序排列,所以在第一次使用sort()
时列表的排列顺序保持不变,当我们设置reverse
标志为True
时,列表成功地按照降序进行了排列。
这里sort()
方法只是介绍了其用法的冰山一角,详细的用法我们会在以后进行详细地说明。
码字不易,如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~
Python list 列表方法相关推荐
- python之列表方法大全
文章目录 列表方法 1.append 在特定的列表最后添加一个元素,并且只能一次添加一个元素,并且只能在列表最后. 2.clear 清空列表,使列表变成一个空的. 3.1.copy 返回列表对象的浅拷 ...
- Python list列表方法使用总结及拓展延伸
Python list列表使用操作 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置 ...
- Python 的列表方法 append 和 extend 有什么区别?
问: 这个问题的答案是社区的努力.编辑现有答案以改进这篇文章.它目前不接受新的答案或交互. 列表方法 append() 和 extend() 有什么区别? 答1: huntsbot.com提供全网独家 ...
- Python之列表方法
1.Append append方法用于在列表末尾追加新的对象. >>> lst = [1,2,3] >>> lst.append(4) >>> l ...
- python的列表方法_Python列表的常用方法
一.列表是什么? 列表是由一序列特定顺序排列的元素组成的,可以把字符串.数字.字典等都可以加入列表中. 列表中元素之间没有任何关系,列表也是自带下标的,默认从0开始. 列表是最常用的Python数据类 ...
- 【Python】列表方法“+”与“extend()”区别
列表是 python 常见的数据结构类型 用于在列表后追加一个数据有"append()"方法 用于在列表后追加多个数据有"+"和"extend()&q ...
- python输入列表方法_Python用input输入列表的方法
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- Python list sort方法:列表排序
目录 描述 语法 使用示例 对列表进行排序 指定权值 逆序排序 注意事项 改变原列表顺序 2. 列表元素类型不一致 3. Python早些版本 描述 list.sort方法是Python的列表方法,用 ...
- Python List 列表list()方法
Python基础数据类型之一列表list,在python中作用很强在,列表List可以包含不同类型的数据对像,同时它是一个有序的集合.所有序列能用到的标准操作方法,列表也都可以使用,比如切片.索引等, ...
最新文章
- (C++)用upper_bound函数取代自己写的二分查找
- VS2015+openGL配置
- leetcode算法题--寻找两个有序数组的中位数★★
- android控件的隐藏与显示
- Theano 中文文档 0.9 - 5.3 Windows安装说明
- RabbitMQ和Kafka的显著差异(4)
- Kaggle入门——使用scikit-learn解决DigitRecognition问题
- 星舆科技北斗高精度定位网启动北斗三号服务
- 漫画×雕塑 | 之于表达
- SQL练习题附重点函数说明--更新至21题
- STM32串口屏学习
- 需求分析师应具备的几项能力
- O2优化后,程序freez了(变量的读取过程被优化,使用volatile可解决)
- 藏书馆App基于Rainbond实现云原生DevOps的实践
- 吴恩达 - 卷积神经网络 学习笔记(一)
- 基于51单片机十字路口交通信号灯(启动按键+绿灯同亮报警)
- oracle 客户端 sqlplus 命令行 问号 乱码
- 离散数学笔记_第一章:逻辑和证明(1)
- 酷友观点/经验:iphone 5\6\6p各尺寸参照图(原创)
- 谷歌浏览器禁止打开某些网站