Python 编程 | 连载 08 - 列表与元组操作

简介: Python 编程 | 连载 08 - 列表与元组操作

一、列表 List 与 元组 Tuple 操作

sort 函数

sort 函数的功能是可以对当前列表按照一定的归类进行排序,该函数有两个参数需要传入,其中一个可以不传,另外一个时排序规则 reverse=Tue 或者 False,默认是 False 既按照升序排列,True 则是按照降序排列

sort 对列表进行排序要求列表中的元素必须为相同类型,否则无法排序

list_str = ['2051', '2022', 1, [1, 2, 3]]
print('排序前的列表顺序:{}'.format(list_str))
list_str.sort()
print('排序后的列表顺序:{}'.format(list_str))
复制代码

image.png

list_str = ['2051', '2022', '2040', '2050']
print('排序前的列表顺序:{}'.format(list_str))
list_str.sort()
print('排序后的列表顺序:{}'.format(list_str))
复制代码

image.png

list_str = ['2051', '2022', '2040', '2050']
print('排序前的列表顺序:{}'.format(list_str))
list_str.sort(reverse=True)
print('排序后的列表顺序:{}'.format(list_str))
复制代码

image.png

sort函数传入参数reverse=True时按照降序排列

clear 函数

clear函数可以将当前列表中的数据清空,无须传递参数也没有返回值

list_str = ['2051', '2022', '2040', '2050']
print('clear前的列:{}'.format(list_str))
list_str.clear()
print('clear后的列表:{}'.format(list_str))
复制代码

image.png

copy 函数

copy函数将当前的列表赋值一份相同的列表,新列表的内容与旧列表的内容相同,但是内存地址不同;copy函数无须传入参数;返回一个相同的列表

copy函数与二次赋值的区别:

  • 二次赋值与原变量的内存地址相同
  • copy返回的列表内存地址与原列表不同
  • copy返回的列表与原列表是两个列表,修改一个列表的内容对另一个列表不会有任何影响,二次赋值由于两个变量指向的都是同一块内存,所有修改数据会对两个变量都有影响
  • copy属于浅拷贝

浅拷贝,有一个列表a,列表中的元素还是列表,当拷贝出新列表b后,无论是a还是b的内部的列表中的数据发生了变化后,相互之间都会收到影响

list_01 = [
            ['stark', 'peter'],
            ['banner', 'steve'],
            [1, 5, 8, 9]
           ]
list_01_copy = list_01.copy()
print(list_01_copy)
# 修改列表中的元素
list_01[0].append('clint')
print(list_01_copy)
复制代码

image.png

修改只有第一层数据不会收到影响,嵌套的列表则会受到影响

深拷贝不仅对第一层数据记性了拷贝,同时也对深层的数据进行了拷贝,原始变量和新变量完全是两个变量,修改不会互相影响。

import copy
list_01 = [
            ['stark', 'peter'],
            ['banner', 'steve'],
            [1, 5, 8, 9]
           ]
# 深拷贝
list_01_deepcopy = copy.deepcopy(list_01)
print(list_01_deepcopy)
# 修改列表中的元素
list_01[0].append('clint')
print(list_01_deepcopy)
print('list_01的内存地址为:{}'.format(id(list_01)))
print('list_01_deep_copy的内存地址为:{}'.format(id(list_01_deepcopy)))
复制代码

image.png

深拷贝需要导入copy模块,调用deepcopy函数完成,调用深拷贝返回的列表是一个新的列表,内存地址不同。

extend 函数

extend函数是将其他列表或者元组中的元素导入到当前列表中,接收一个可迭代的数据类型作为参数如列表元组字典字符串等,该函数无返回值

heros = ['stark']
hero = ['thor', 'loki', 'banner' ]
heros.extend(hero)
print(heros)
heros.extend(('peter', 'strange'))
print(heros)
heros.extend('hello')
print(heros)
heros.extend({'name': 'pipi'})
print(heros)
复制代码

image.png

传入字典时,只会将Value加入列表中。

heros = ['stark']
heros.extend(None)
复制代码

image.png

传入int整型

heros = ['stark']
heros.extend(12)
print(heros)
复制代码

image.png

传入bool类型

heros = ['stark']
heros.extend(True)
print(heros)
复制代码

image.png

pop 函数

pop 函数可以通过索引删除索引对应的元素,并返回该元素,如果传入的索引不存在则会报错

list_str = ['stark', 'peter', 'banner', 'clint', 'thor']
pop_item = list_str.pop(3)
print('删除的元素为:', pop_item)
pop_item_nonexist = list_str.pop(10)
print(pop_item_nonexist)
复制代码

image.png

del 函数

del 函数可以通过索引删除元素,与pop函数的区别是del函数无返回

list_str = ['stark', 'peter', 'banner', 'clint', 'thor']
del list_str[3]
print(list_str)
del list_str[10]
print(list_str)
复制代码

image.png

del 函数删除元素的方式就是 通过[]方式取出列表中的元素,然后在del删除


相关文章
|
4月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
475 116
|
4月前
|
大数据 开发者 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
417 109
|
4月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
350 3
|
4月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
578 3
|
4月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
|
4月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
382 3
|
4月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
195 1
|
4月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
449 0
|
11月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
12月前
|
安全 数据处理 索引
深入探讨 Python 列表与元组:操作技巧、性能特性与适用场景
Python 列表和元组是两种强大且常用的数据结构,各自具有独特的特性和适用场景。通过对它们的深入理解和熟练应用,可以显著提高编程效率和代码质量。无论是在数据处理、函数参数传递还是多线程环境中,合理选择和使用列表与元组都能够使得代码更加简洁、高效和安全。
359 9

推荐镜像

更多