当前位置: 首页 > news >正文

零基础学 Python合集--1:list列表-持续更新

列表对象自带方法

  • append(element):在列表末尾添加单个元素。

  • remove(value):删除列表中第一个值与参数相同的元素。

  • extend(iterable):将另一个可迭代对象(如列表)中的元素逐个添加到原列表末尾。

  • sort(key=None, reverse=False):对列表进行原地排序,默认升序;reverse=True时降序;返回值是None

  • clear():清空列表中的所有元素,列表变为空列表[]

  • copy():创建列表的浅拷贝(等价于list[:]),返回一个新列表,但内部元素仍是原对象的引用。

切片操作

  • list[start:end:step]:通过索引区间获取子列表,遵循左闭右开原则(包含start,不包含end)。

  • 多维列表中的切片如list[:2]取前两行,row[:2]取每行的前两个元素。

  • 全切片[:,:]在 NumPy 数组中使用,表示取所有行和所有列(纯列表不支持此写法)。

copy模块(拷贝操作)

  • copy.copy(obj):浅拷贝。新列表与原列表是不同的对象,但内部的子对象(如嵌套列表)仍共用同一内存地址,修改子对象会互相影响。

  • copy.deepcopy(obj):深拷贝。递归复制所有层级的对象,新列表与原列表完全独立,修改任意元素均不影响原对象。

NumPy 库相关函数

  • np.array(list):将 Python 多维列表转换为 NumPy 多维数组。

  • array.shape:返回数组各维度的大小(元组形式)。

  • np.ndim(array):返回数组的维度数(例如二维数组返回2)。

#create list mylist = [] print(f"原始list内容:{mylist}") #添加元素 mylist.append(1) mylist.append(123) print(f"添加元素后的list内容:{mylist}") #访问元素 print(f"访问list中的第一个元素:{mylist[0]}") print(f"访问list中的第二个元素:{mylist[1]}") #修改元素 mylist[1] = 123456 print(f"修改元素后的list内容:{mylist}") #删除元素 mylist.remove(1) # 删除值为1的元素 print(f"删除元素后的list内容:{mylist}") #列表中添加列表mylist2的内容 mylist2 = [996,908,432,101] mylist.extend(mylist2)#extend方法是将mylist2中的元素逐个添加到mylist中 print(f"添加mylist2内容后的list内容:{mylist}") #列表内容排序 mylist3 = mylist.sort()#默认升序排序,赋值给mylist3后mylist3的值为None,因为sort()方法是就地排序,不返回新的列表 print(f"升序排序后的list内容:{mylist},mylist3:{mylist3}") #按降序排序 mylist.sort(reverse=True)#reverse参数为True时,按降序排序 print(f"降序排序后的list内容:{mylist}") #列表切片 #举例,只取第3-5个元素 sliced_list = mylist[3:6]#切片操作,mylist[3:6]表示从索引3开始(包含索引3),到索引6结束(不包含索引6),即取第3、4、5个元素,左闭右开区间 print(f"切片后的list内容:{sliced_list}") #列表长度 len_mylist = len(mylist) print(f"list的长度:{len_mylist}") #列表清空 mylist.clear()#将列表中的所有元素删除,但列表对象仍然存在,mylist仍然是一个空列表[] print(f"清空后的list内容:{mylist}") #列表复制 copy_mylist = mylist.copy()#copy方法创建一个新的列表对象,并将mylist中的元素复制到新的列表中,copy_mylist和mylist是两个不同的列表对象 print(f"复制后的list内容:{copy_mylist}") #深拷贝和浅拷贝的区别 import copy #举例 ori_list = [1, 2, [3, 4]] #浅拷贝就是创建一个新的列表对象,但其中的元素仍然是原来列表中的元素的引用,即新列表中的元素和原列表中的元素指向同一个对象,修改新列表中的元素会影响原列表中的元素 qian_copy_ori_list = copy.copy(ori_list) #打印浅拷贝的qian_copy_ori_list和原列表ori_list print(f"浅拷贝后的列表内容:{qian_copy_ori_list},原列表内容:{ori_list}") #现在修改浅拷贝列表中的元素,看看是否会影响原列表 qian_copy_ori_list[2][0] = 999 print(f"修改浅拷贝列表后的内容:{qian_copy_ori_list},原列表内容:{ori_list}") #可以看到,修改浅拷贝列表中的元素后,原列表中的元素也被修改了,因为浅拷贝只是复制了列表对象,但其中的元素仍然是原来列表中的元素的引用,所以修改新列表中的元素会影响原列表中的元素。 #所以浅拷贝在实际应用中,建议只在列表中没有嵌套列表或者其他可变对象时使用,否则可能会导致意外错误。 #copy常用的函数主要是以下内容:1.浅拷贝:copy.copy(),2.深拷贝:copy.deepcopy() #深拷贝 deep_copy_ori_list = copy.deepcopy(ori_list) #深拷贝是完全复制了原列表中的元素,不管是基本数据类型还是复杂数据类型,都会创建一个新的对象,所以修改深拷贝列表中的元素不会影响原列表中的元素。 #打印深拷贝的deep_copy_ori_list和原列表ori_list print(f"深拷贝后的列表内容:{deep_copy_ori_list},原列表内容:{ori_list}") #现在修改深拷贝列表中的元素,看看是否会影响原列表 deep_copy_ori_list[2][0] = 888 print(f"修改深拷贝列表后的内容:{deep_copy_ori_list},原列表内容:{ori_list}") deep_copy_ori_list[0] =666 print(f"修改深拷贝列表中的基本数据类型元素后的内容:{deep_copy_ori_list},原列表内容:{ori_list}") #可以看到,修改深拷贝列表中的元素后,原列表中的元素没有被修改,因为深拷贝完全复制了原列表中的元素,不管是基本数据类型还是复杂数据类型,都会创建一个新的对象,所以修改新列表中的元素不会影响原列表中的元素。 #所以深拷贝在实际应用中,建议在列表中有嵌套列表或者其他可变对象时使用,以避免意外错误。 #一般在实际应用中,浅拷贝远多于深拷贝,因为默认浅拷贝共享内存,极致提速省内存,但是要改数据、保原数据 → 请使用深拷贝 #多维列表的操作,多维列表就是列表嵌套列表,可以看作是一个矩阵或者表格,常见的操作有以下内容: #1.创建多维列表 multi_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]#这是一个二维列表,包含三个元素,每个元素都是一个列表 """最外层:一整个大列表 → 第 1 维 里面每一个元素还是列表 → 第 2 维 ,[[[[[几个方括号就是几维度,[[[[[[就是6维""" #可以直接打印列表的形状和维度 import numpy as np #numpy库是python中常用的科学计算库,提供了多维数组对象和各种操作多维数组的函数,可以方便地处理多维列表。 shape_multi_list = np.array(multi_list).shape#将多维列表转换为numpy数组,然后获取其形状 print(f"多维列表的形状:{shape_multi_list}")#多维列表的形状:(3, 3) #打印维度 print(f"多维列表的维度:{np.ndim(multi_list)}")#多维列表的维度:2 #打印np.array(multi_list)的内容 print(f"将多维列表转换为numpy数组后的内容:\n{np.array(multi_list)}")#将多维列表转换为numpy数组后的内容:[[1 2 3] [4 5 6] [7 8 9]] #打印np.array(multi_list).shape[0]的内容 print(f"将多维列表转换为numpy数组后的第一行内容:\n{np.array(multi_list).shape[0]}")#将多维列表转换为numpy数组后的第一行内容:[1 2 3] #2.访问多维列表中的元素 #打印第一维的所有元素 for i in range(np.array(multi_list).shape[0]): print(f"第一维的每一个元素:{multi_list[i]}") #打印第二维的所有元素 for i in range(np.array(multi_list).shape[0]):#第一维度,本示例第一维有3个列表元素 for j in range(np.array(multi_list).shape[1]): print(f"第二维的第一个元素:{multi_list[i][j]}")#访问多维列表中的元素,multi_list[i][j]表示访问第一维的第i个元素中的第二维的第j个元素 #列表中的 [:,:] 用法 test_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] #使用切片操作访问多维列表中的元素,[:,:]表示访问所有行和所有列,即访问整个多维列表 #使用切片操作访问多维列表中的元素,只访问第一行和第二行中每一行的前两个元素,即1 2 和4 5 ,第三行不访问 for row in test_list[:2]: print(f"row:{row}")#访问多维列表中的元素,test_list[:2]表示访问第一行和第二行,即访问前两行的所有元素 print(f"row:{row[:2]}")
http://www.jsqmd.com/news/904905/

相关文章:

  • 【AVRCP】规范精讲[18]: 从字节到交互,全流程拆解AVRCP命令与响应实战
  • 2026最新【四六级历年真题2017-2025.12】分享
  • 解密浏览器Cookie本地导出:Get cookies.txt LOCALLY实战指南
  • 终极指南:Dell G15散热控制中心的开源替代方案完全解析
  • Python进阶 面向对象基础
  • 在线去本地视频水印的工具推荐:一篇实测横评看完
  • AI浪潮来袭:小白程序员如何把握机遇,成为超级个体并收藏这份成长指南?
  • 告别卡顿!实测对比:Parallels Desktop vs. VMware Fusion vs. UTM,谁才是Mac上跑Win10的最佳选择?
  • Path of Building PoE2终极指南:流放之路2最强构建规划工具完全教程
  • 2026农用薄膜十大品牌排行榜-农用薄膜哪个牌子好-大家比精选排行榜单 - GrowthUME
  • BOM 核心对象
  • Arduino生日音乐盒制作:从硬件选型到代码调试全解析
  • 【限时解禁】Sora 2多角色视频生成私有Prompt语法手册(OpenAI内部培训PPT第47–89页原图直出)
  • 手把手教你学Simulink——UPS系统中双向DC-AC逆变器的并联均流控制仿真
  • 推荐1款提升办公效率的神级软件,简真是Windows神器!
  • 【 linux 】认识make和makefile
  • 2026年4月高架库定做厂家有哪些,自动化立体仓库/高架库/立体仓储/智能仓库/智能仓储/立体仓库,高架库优质厂家推荐 - 品牌推荐师
  • 6.1 机器学习概述
  • 效率直接起飞!2026年真正好用的专业AI论文平台
  • FastbootEnhance:告别复杂命令行,Windows上最直观的Android设备管理工具
  • 大数定律:只要时间足够长,离谱的事情一定会发生
  • 2000-2024年 县域年末金融机构贷款余额、金融机构储蓄存款余额数据 xlsx
  • 如何快速完成微信聊天记录备份:面向普通用户的完整指南
  • 别再纠结了!RTL8367系列五款千兆交换机芯片怎么选?一张图帮你搞定(附硬件开发包获取)
  • 2026广州注册公司靠谱财税公司推荐|本地创业者实测5家优质代办机构 - GrowthUME
  • Sora 2生成电影预告片的底层逻辑(帧间物理引擎+叙事张力算法首次公开)
  • 收藏!普通人也能抓住的AI大模型应用开发机遇,高薪就在眼前!
  • AI写代码真能提效30%?程序员小白必看,收藏这篇避坑指南!
  • 豆包视频去水印方法实测:4款工具横评推荐
  • 基于PyTorch的VGG19图像分类——从CPU到DLP的完整实践