IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python list 列表方法 -> 正文阅读

[Python知识库]Python list 列表方法

假设我们有一个list对象

list1 = [1, 1, 2]

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 + 1
        print(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 + 1
        index_list.append(index)

print(index_list)
"""
result:
[0, 1]
"""

可以看到,此时我们输出了一个列表,其中存放了列表中所有满足条件的元素的索引值。关于append()函数的用法我们后面会进一步说明。现在我们可以回到刚才的问题了,如何得到列表中第二个值为1的元素的索引值。我们只需在得到上面index_list的基础上使用如下代码:

print(index_list[2-1])

其中2表示第二个符合要求的元素,1表示因为列表的索引值是从0开始的,所以我们要减去1。至此,index()函数的用法暂时告一段落。

count()方法:找出列表对象中某个元素出现的次数

list1 = [1, 1, 2]
print(list1.count(1))	# 找出值为1的元素出现的次数
print(list1.count(2))	# 找出值为2的元素出现的次数
"""
result:
2
1
"""

可以看到,这里我们成功获取到了列表中值为1的元素出现的次数为2,值为2的元素出现的次数为1

append()方法:向列表对象的末尾位置添加某个新的元素

list1 = [1, 1, 2]
list1.append("append")
print(list1)
"""
result:
[1, 1, 2, 'append']
"""

可以看到,这里我们成功地向列表对象的末尾添加了一个字符串元素"append".

说到向列表中添加元素的方法,就不得不说到另一种方法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()方法:删除列表对象某个特定的元素,如果存在多个相同元素,则默认从左到右删除第一个符合要求的元素

list1 = [1, 1, 2]
list1.append("append")
print(list1)
list1.remove("append")
print(list1)
"""
result:
[1, 1, 2, 'append']
[1, 1, 2]
"""

可以看到,这里我们成功地向列表中添加了一个字符串元素"append"后又使用remove()方法将其删除了。

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():删除列表中给定索引值所对应的元素

list1 = [1, 1, 2]
list1.pop(2)
print(list1)
"""
result:
[1, 1]
"""

可以看到,我们成功地删除了列表中的最后一个元素。

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()方法:向列表中的特定位置插入给定元素

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()方法:将列表中的元素进行排序,默认升序

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知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:31:00  更:2021-09-24 10:32:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:31:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码