Python列表与元组基础操作详解:从增删改查到内存管理
本文系统梳理Python中列表与元组的常见操作方法,涵盖长度获取、元素查找、追加插入、排序反转及清空复制等核心功能。重点解析append、insert、remove、sort、clear、copy等内置函数的使用细节与注意事项,并深入探讨二次赋值与copy的区别,以及浅拷贝与深拷贝在嵌套数据结构中的内存表现,帮助开发者掌握高效的数据处理技巧。
Python中列表的常见操作
列表与元组的基础操作
此前我们已学习过len()函数、赋值运算符以及身份运算符的用法,本节将简要回顾这些工具在列表和元组中的具体应用。
获取列表或元组的长度
len()函数此前已介绍过,需注意该函数适用于除数字类型外的几乎所有数据类型,其返回值即为对象的长度。
示例如下:

列表与元组的拼接及乘法运算
无论是执行拼接还是乘法操作,Python均会生成一个新的列表或元组对象。
具体用法见下:
# 累加 new_list = list1 + list2 new_tuple = tuple1 + tuple2 new_list += ['test'] # 乘法 new_list = list1 * 10 new_tuple = tuple * 10 new_tuple *= 10
示例如下:

检查列表或元组中是否包含特定元素
利用in或not in运算符进行判断:
示例如下:

列表的append()方法
该方法用于将单个元素添加至列表末尾。
list.append(new_item) # new_item是添加到列表的新元素,new_item是任意数据类型
无论添加何种元素,其最终位置均位于列表最后。
append方法直接在原列表对象上进行修改,无需创建新变量或分配新的内存空间。
示例显示,使用append后,变量的内存地址保持不变,仍指向原列表对象。

注意:append方法仅接受一个参数,若传入多个参数将引发错误。

列表的insert()方法
该方法用于将元素插入到列表的指定索引位置,原位置及之后的元素会自动向后顺延。
# indexs是新元素放在哪个位置(整型) # new_item是添加到列表的新元素,new_item是任意数据类型 list.insert(index,new_item)
若指定的插入索引超出列表当前范围,新元素将被追加至列表末尾。
需注意的是,字符串、列表及元组的索引均从0开始,即首个元素的索引为0,第二个元素的索引为1。
示例如下:

列表的count()方法
该方法用于返回指定元素在列表中出现的次数。
item_count = list.count(item) # item是想要查询个数的元素
count()方法同样适用于查询元组中指定元素的个数。
若查询的元素不在列表中,该方法将返回0。
示例如下:

列表的remove()方法
该方法用于删除列表中的第一个匹配元素。
list.remove(item) # item是想要删除的元素
若指定的元素在列表中不存在,程序将直接抛出异常错误。
若列表中存在多个相同的待删元素,remove方法仅删除第一个匹配项。
示例如下:

扩展知识:Python内置函数del
del函数用于将变量从内存中彻底移除:

列表的reverse()方法
该方法用于将列表中元素的顺序进行原地反转。
list.reverse() # 括弧内不需要传参
示例如下:

列表的sort()方法
该方法用于按照特定规则对列表元素进行排序。
list.sort(cmp=None,key=None,reverse=False) # cmp---可选参数,制定排序方案的函数 # key---参数比较 # reverse---排序规则,True为降序,False为升序(默认)
前两个参数涉及高级函数知识,本节仅介绍reverse参数,其他参数暂不传递。
示例如下:

列表内元素的数据类型必须一致,否则排序操作将报错:

默认情况下按首字母排序,若首字母包含大写字母,大写字母将排在小写字母之后:

列表的clear()方法
该方法用于清空列表中的所有元素。
list.clear() # 括弧内不需要填参数
示例如下:

思考题:再次将变量赋值为空列表,与使用clear()方法清空列表有何区别?
解答:再次赋值空列表时,系统需先销毁原有变量(因判断不再需要该变量),随后在内存中创建新变量;而使用clear()方法则是直接在已存在的变量对象上操作,从而节省时间与内存资源。
列表的copy()方法
该方法用于复制一份与原列表内容相同的列表,并赋值给新变量。新旧两个列表拥有不同的内存空间。
list.copy() # 括弧内不需要填参数
示例如下:

思考题:copy方法与二次赋值有何区别?
解答:二次赋值的变量与原始变量共享同一内存空间,因此数据也是共享的,修改其中一个,另一个也会随之改变;而通过copy创建的列表与原始列表拥有独立的内存空间:

扩展知识:关于浅拷贝与深拷贝
浅拷贝:
若列表a中嵌套了其他列表,对a进行浅拷贝生成b后,若a或b中的二层嵌套列表发生变化,将同时影响a和b中的二层列表内容。

深拷贝copy.deepcopy():
深拷贝不仅复制第一层数据,还会递归复制深层嵌套数据,使得原始变量与新变量完全独立,不共享任何数据:

列表的extend()方法
该方法用于将其他列表或元组中的元素合并导入到当前列表中。
list.extend(iterable) # iterabal代表列表或元组
示例如下:

实际上,extend()方法的参数也可传入字符串或列表。若传入字符串,其字符会被逐个拆分并作为独立元素导入列表;若传入字典,则仅将字典的键(key)作为列表元素导入:

至此,关于Python中列表常见操作的梳理总结(第一部分)介绍完毕。如需了解更多Python列表操作内容,请查阅本站往期文章或继续浏览后续相关文章,感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









