捋一捋Python中的List(下)

简介: 正式的Python专栏第27篇,同学站住,别错过这个从0开始的文章!

上篇学委对照tuple文章的操作一一罗列了list列表数据的相应的操作。


这次我们继续把list的其他操作看完。


list比tuple多了这些操作支持

前面学委提到tuple(元组)就是焊死了的一串串车厢,list支持元素编辑,明显灵活多了。


我们先看看删除操作,python中的list就支持了3中删除元素的操作。


假设我们定义一个列表对象 list_obj, 那么我们可以执行下面任意一个操作,进行元素删除。


del list_obj[下标]
list_obj.remove(某个元素值)
list_obj.pop(下标) #返回元素值

好,我们看看下面完整代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : list_demo4.py
# @Project : hello
# 删除列表元素
mylist = [1, 0, 2, 4, "雷学委"]
print("mylist:", mylist)
del mylist[0]
print("after remove first element, mylist:", mylist)
mylist.remove("雷学委")
print("after remove first element, mylist:", mylist)
removed_value = mylist.pop(1)  # 移除并返回的元素值
print("after remove first element, mylist:", mylist)
print("removed value:", removed_value)

效果如下:

image.png

特别需要注意的是:删除元素不能超过list的下标范围,否则报错!

除了删除,list怎么添加/扩充元素呢?

先不说修改的,list也支持定位查找元素,我们先看看。

list_obj.index(某个元素值) #通过某个元素值定位到第一个匹配的下标,从0位置开始找。

假设list_obj = [3, 2, 1] 那么list_obj.index(2) 则是什么?

答案是:1。

好,我们继续说插入新元素。

# python中的list支持下面两种方式追加元素
list_obj.insert(指定下标, 元素)
list_obj.append(元素) #末尾追元素

那么一次性追加多个,或者直接扩充某个列表到现有列表呢?

我们找到了extend函数,使用list_obj.extend(补充列表) 就能把list_obj直接扩充了,效果是依次追加补充列表的元素到末尾。

说这么多操作,我们直接复制运行下面的代码看看:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : list_demo5.py
# @Project : hello
# 列表的其他函数
mylist = [6, 6, 6]
print("mylist:", mylist)
mylist.append("雷学委")
print("mylist:", mylist)
print("列表多少个6?:", mylist.count(6))
print("第一个6的位置下标?:", mylist.index(6))
mylist.insert(2, 1024)
print("第一个1024的位置下标?:", mylist.index(1024))
last = mylist.pop() #删除操作前面说过了,这几举例一个。
print("最后的元素是:",last)
print("mylist:", mylist)
# 直接追加新列表
mylist.extend(mylist)  # 相当于mylist = mylist * 2
print("mylist:", mylist)
mylist.extend(['持续学习', '持续开发'])
print("mylist:", mylist)

这是代码运行效果:

image.png

非常简便,我们继续看看列表元素排序


list的排序

前面说的都是编辑操作,list也可以进行数据排列,也就是按照一定逻辑进行顺序排列。


list提供了一个sort函数和reverse函数。


先说简单的,reverse函数相当于把整个串串车厢直接调头。也就是list:[1,2,3] 经过reverse函数处理后,变成了[3,2,1]。


sort则更加弹性,默认安装元素面值(比如数字,数字串),还支持传入一个lambda函数,指定排序逻辑。


以上函数默认会对一个数字组成的数组进行按数字面值大小排序


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : list_demo6.py
# @Project : hello
# 列表的其他函数
mylist = [2, 3, 1]
#mylist = ["2", "3", "1"]
mylist.sort()
print("mylist:", mylist)
mylist.extend(['持续学习', '持续开发'])
print("mylist:", mylist)
mylist.sort(key=lambda e: len(str(e)), reverse=True)
print("sorted mylist:", mylist)
mylist.reverse()
print("reversed mylist:", mylist)

效果如下,读者可以仔细看看是否如学委所说。

image.png

特别注意:学委上面示例代码也展示了,如果一个列表内元素不是同一类型(都是数字,都是字符串或者都是某个类型),开发者必须实现一个lambda函数给sort函数作为参考进行排序。


总结

list有很多功能,进行元素的操作(添加/删除/定位)等非常方便。


而且还能轻易扩充,排序,逆序等,这让list的使用非常广泛,每个学习python的务必多敲代码,掌握熟练。


目录
相关文章
|
9月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
366 4
|
索引 Python
Python错误 - 'list' object is not callable 的问题定位与解决
出现编程问题并不可怕,关键在于是否可以从中学习与成长。遇到'list' object is not callable这样的错误,我们不仅需要学会应对,更需要了解其背后的原因,避免类似的问题再次出现。记住,Python的强大功能和灵活性同时也意味着我们需要对其理解更准确,才能更好的使用它。
1648 70
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
663 14
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
403 9
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
1637 10
|
测试技术 开发者 Python
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
在 Python 中,创建列表有两种方法:使用方括号 `[]` 和调用 `list()` 函数。虽然两者都能创建空列表,但 `[]` 更简洁、高效。性能测试显示,`[]` 的创建速度比 `list()` 快约一倍。此外,`list()` 可以接受一个可迭代对象作为参数并将其转换为列表,而 `[]` 则需要逐一列举元素。综上,`[]` 适合创建空列表,`list()` 适合转换可迭代对象。
388 1
在 Python 中创建列表时,应该写 `[]` 还是 `list()`?
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
578 7
|
SQL 机器学习/深度学习 算法
【python】python指南(五):静态类型注解之List
【python】python指南(五):静态类型注解之List
346 0
【python】python指南(五):静态类型注解之List

推荐镜像

更多