python教程:12种列表常用操作方法

news2024/12/29 9:19:52

都是基础知识,长久不用就会忘,温故知新,又来学习学习。相信很多人在编程的或者对一些程序处理的思维会用到,比如面试 (有写的不对的地方也请大家指正~

一、列表定义

列表是一个有序且可更改的集合。在Python中,列表用方括号表示。列表里面的内容可以是任意类型,可重复。

li = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 1, 2, 3]
print(li)
['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 1, 2, 3]

二、向列表添加数据

1、追加 append方法

li = ['A', 'B', 'C']
li.append('E')  # 一次只能添加一个元素,并且只能在列表最后
print(li)
['A', 'B', 'C', 'E']

2、插入 insert方法,比append灵活,指定索引位,注意索引从0开始

li = ['A', 'B', 'C']
li.insert(0, 'M')  # 在首位插入M,两个参数
print(li)

['M', 'A', 'B', 'C']

三、删减列表中数据

1、弹出 pop方法

li = ['A', 'B', 'C']
li.pop()  # 根据索引进行删除,默认删除最后一个元素,一次只能删除一个
print(li)
['A', 'B']

 删除指定位置的数据

li = ['A', 'B', 'C']
li.pop(0)  # 删除第一位
print(li)
['B', 'C']

2、移除 remove方法

li = ['A', 'B', 'C']
li.remove('B')  # 删除列表中的值,一次只能删除一个
print(li)
['A', 'C']

3、操作语句del

li = ['A', 'B', 'C']
del li[0] #删指定索引的元素,需要注意是del是一种操作语句
print(li)
['B', 'C']

四、索引(即下标)

li = ['A', 'B', 'C']
print(li[0])  # 获取首位
print(li[-1])  # 获取末尾
A
C

五、切片,顾头不顾尾

li = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 1, 2, 3]
print(li[0:2])  # 获取前两位
['A', 'B']

print(li[:])  # 获取全部
['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 1, 2, 3]


print(li[4:])  # 获取第5位到尾部
['E', 'F', 'G', 1, 1, 2, 3]

print(li[-3:-1])  # 获取倒数第3到倒数第2
[1, 2]

六、跳取,涉及步长

要点,找到索引位,步长为正顺着取,步长为负,逆向取

li = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 1, 2, 3]
print(li[1:5:3])  # 从第2位到第6位,隔2个获取
['B', 'E']

print(li[0:5:2])  # 从开头到第6位,隔1个获取
['A', 'C', 'E']

print(li[5:0:-2])  # 从第6位开始,隔1个倒着获取
['F', 'D', 'B']

七、常用列表操作符

1、复制 *

li = ['A', 'B']
print(li * 2)  # 复制列表中的值追加到列表
['A', 'B', 'A', 'B']

2、拼接 +

li = ['A', 'B']
li2 = ['C', 'D']
print(li + li2)  # 两个列表拼接
['A', 'B', 'C', 'D']

八、统计列表某元素出现次数

li = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 1, 2, 3]
print(li.count('A'))  # 统计元素A出现的次数
print(li.count(1))  # 统计元素1出现的次数
1
2

九、查找元素

如果列表中有重复元素,index方法只找首次出现的索引位

li = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 1, 2, 3]
print(li.index('A'))  # 查找元素A首次出现的索引位置
print(li.index(1))  # 查找元素1首次出现的索引位置
0
7

十、反转列表

li = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 1, 1, 2, 3]
li.reverse()  # 反转列表元素
print(li)
[3, 2, 1, 1, 'G', 'F', 'E', 'D', 'C', 'B', 'A']

十一、列表排序

只对全数值有效,否则会报错

li = [1, 5, 2, 99, 6, 44, 66, 3, 34]
li.sort()  # 默认对列表数据进行从小到大排序
print(li)
[1, 2, 3, 5, 6, 34, 44, 66, 99]

li.sort(reverse=True)  # 对列表数据进行从大到小排序
[99, 66, 44, 34, 6, 5, 3, 2, 1]

#根据对列表元素反转的规律,从大到小排序也可以先sort后再reverse
#li.sort()
#li.reverse()

十二、拷贝列表

1、浅拷贝,改一个会影响另一个

#浅拷贝
l = ['A', 'B']
k = l
print(k)
l.append('C')
print(l)
print(k)  # 对l列表进行操作会同步影响k列表值

['A', 'B']
['A', 'B', 'C']
['A', 'B', 'C']

2、深拷贝,改一个不会影响另一个

# 深拷贝
m = ['A', 'B']
n = m[:]
print(n)
m.append('C')
print(m)
print(n)  # 对m列表进行操作不影响n列表值

['A', 'B']
['A', 'B', 'C']
['A', 'B']

3、copy函数,改一个不会影响另一个

m = ['A', 'B']
n = m.copy()
print(n)
m.append('C')
print(n)
['A', 'B']
['A', 'B']

4、内建方法list,本质可以理解为转成列表,改一个不会影响另一个

m = ['A', 'B']
n = list(m)
print(n)
m.append('C')
print(n)
['A', 'B']
['A', 'B']

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/71528.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机视觉之单发多框检测(Single Shot MultiBox Detector)模型《3》

有了前面两节的背景知识,我们来构造一个目标检测模型,就是来自Wei Liu大神之作的SSD了,有兴趣的可以查阅论文:SSD: Single Shot MultiBox Detector 计算机视觉之目标检测(object detection)《1》https://blog.csdn.net/weixin_41…

[附源码]Python计算机毕业设计Django招聘系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

C#语言实例源码系列-实现图片合成功能

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中…

关于质量分析

背景 在日常工作过程中,作为测试,我们要及时反思总结历史出现的问题,以便于对日常的工作流程规范以及质量防护措施作出相应的调整作为下属,我们要定期的向上级反馈近期的产品质量情况基于以上的背景,我们需要定期对产…

java简单做一个消费者/生产者案例

首先 我们创建一个包 在包下创建 四个类 首先是奶箱类 milkBox 在业务中充当数据的存储类 参考代码如下 public class milkBox {private int milk;public void put (int milk){this.milk milk;System.out.println("送奶工将第"this.milk"瓶奶放入奶箱");…

华为是如何从0到1打造以项目为中心运作的项目管理体系的?

本文介绍了华为公司打破传统的功能型组织结构,从弱矩阵项目管理向强矩阵转变的历程。 内容包括如何全面铺设项目管理组织,转向“以项目为中心”。同时,通过一系列的政策、标准和规定统一项目管理语言,建设项目管理流程体系。 其…

Servlet与表单数据交互(如文本框、单选按钮、复选框、下拉列表等)

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:JAVA开发者…

基于遗传算法解决TSP问题(Matlab代码实现)

目录 1 概述 2 运行结果 3 Matlab代码实现 4 结语 5 参考文献 1 概述 旅行商问题是一个经典的路径规划问题,传统TSP假设客户位置和客户之间旅行时间是固定不变的,而在现实生活中交通状况和客户要求可能会随着时间而改变,为了找到最经济的…

(附源码)ssm教育机构管理系统 毕业设计 010224

ssm教育机构管理系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设…

被AI包裹的冬天,智慧供热打破城市供热的“不可能三角”

最近很多城市都迎来了今冬以来的最强寒潮,在拉尼娜事件的影响下,一个格外寒冷的冬天似乎不可避免。而每次降温,有暖气的北方城市就会引来网络上一片艳羡之声。前不久网络上就流传着一个段子“南方人的命也是命,请给南方装暖气 ”&…

自定义jdk镜像

启动虚拟机,进入centos 1.创建文件夹上传jdk的安装包,和在同级目录下编写Dockerfile文件 #创建镜像目录 mkdir –p /javaxl_docker/jdk #安装lrzsz命令 yum install lrzsz -y #选择文件进行上传 rz # 注意d是大写 touch Dockerfile 2.编写 Dockerfile 文件 #1.指定基…

使用C++实现Windows和Linux的Flutter文档扫描插件

文档扫描应用大都是移动应用。结合手机摄像头可以实现文档拍摄,边缘检测,自动剪裁,透视矫正,滤镜等功能。但是桌面办公也少不了文档处理。这里分享下如何使用Dynamsoft Document Normalizer C SDK实现用于桌面文档处理的Flutter插…

抖音最新版抓包方案,修改so绕过ssl

dy过ssl charles抓包 及xposed的justtrustme安装到手机上只能过系统的ssl。 抖音写了一个非系统的ssl所以需要反编译so来处理。 第一步,charles 我用的是magisk手机,先重charles把证书下载到pc端 选项1,安装证书到本地 选项2&#xff0c…

Android桌面图标快捷方式

一、背景 长按桌面图标实现快捷方式最早是iOS提供的功能,而Android最早在Android 7.1版本也提供了对这方面的支持,于是在短时间内,像微信,支付宝,头条等流量级应用都提供了这方面的支持,如下图。 现在,长按桌面图标快捷方式已经是很成熟的功能,实现上也比较简单,主…

知识图谱-KGE-语义匹配-双线性模型(打分函数用到了双线性函数)-2011:RESCAL【双线性模型的开山之作】【把每个关系对应的邻接矩阵进行了矩阵的分解】

【paper】 A Three-Way Model for Collective Learning on Multi-Relational Data 【简介】 这篇文章应该算是双线性模型的开山之作。是德国的一个团队发表在 ICML 2011 上的工作,比较老了,主要思想是三维张量分解。 想研究啥,啥就很重要 Re…

Activity7-流程初体验

流程符号详解: 创建Activiti工作流的主要步骤包含以下几步: 1. 定义流程。按照BPMN的规范,使用流程定义工具,将整个流程描述出来。 2. 部署流程。把画好的BPMN流程定义文件加载到数据库中,生成相关的表数据。 3. 启动流程。使用…

基于粒子群优化算法的微电网调度(光伏、储能、电动车、电网交互)(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清…

目标检测3

还是目标检测相关~这次是Box Size置信度偏差会损害目标检测器 检测器的置信度预测在目标大小和位置方面存在偏差,但目前尚不清楚这种偏差与受影响的目标检测器的性能有何关系。 无数应用依赖于目标检测器的可靠置信度估计的准确预测。然而,众所周知&am…

[附源码]Python计算机毕业设计Django在线招聘网站

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

突破40%!新能源汽车L2级辅助驾驶搭载率创新高

新能源汽车正在成为智能化的主力军。 高工智能汽车研究院监测数据显示,2022年1-10月中国市场(不含进出口)新能源汽车前装标配搭载L2级辅助驾驶交付上险167.51万辆,前装搭载率首次突破40%,达到41.93%;同期&…