Python学习-列表1

news2025/2/25 17:12:13

十二、列表1

1、创建列表及基本运算

1)使用中括号,将所有准备放入列表中的元素,包裹起来,不同元素之间使用逗号分隔。
举例:

[1,2,3,4,5]

2)列表可以容纳不同类型的数据。
举例:

[1,2,3,4,5,"上山打老虎"]

3)给列表添加变量名。
举例:

rhyme = [1,2,3,4,5,"上山打老虎"]
print(rhyme)

 
[1,2,3,4,5,'上山打老虎']

4)序列在Python中是最常见的数据结构,字符串和列表都是序列,按顺序访问列表上的每一个元素。

rhyme = [1,2,3,4,5,"上山打老虎"]
for each in rhyme:
    print(each)
 
    
1
2
3
4
5
上山打老虎

5)单独访问列表中的某一个元素,可以使用下标索引的方法。

rhyme = [1,2,3,4,5,"上山打老虎"]
rhyme[0]
1
rhyme[2]
3
rhyme[5]
'上山打老虎'

6)如果列表很长,如何访问最后一个元素。

length = len (rhyme)
rhyme[length -1]
'上山打老虎'
 
rhyme[-1]
'上山打老虎'

2、列表切片

1)输入需要获取的元素的范围。

rhyme[0:3]
[1, 2, 3]

2)简写元素范围

rhyme[:3]
[1, 2, 3]
rhyme[3:]
[4, 5, '上山打老虎']
rhyme[:]
[1, 2, 3, 4, 5, '上山打老虎']

3)跳着显示元素,第二个冒号后是设置列表步进的跨度值。

rhyme[0:6:2]
[1, 3, 5]
 
rhyme[::2]
[1, 3, 5]

4)倒序输出

rhyme[::-2]
['上山打老虎', 4, 2]
 
rhyme[::-1]
['上山打老虎', 5, 4, 3, 2, 1]

3、列表——增

1)append(),在列表的末尾添加一个指定的元素。

heros = ["钢铁侠","绿巨人"]
heros.append("黑寡妇")
heros
['钢铁侠', '绿巨人', '黑寡妇']

2)extend(),允许直接添加一个可迭代的对象。比如列表就是一个可迭代的对象。
注意:extend()方法的参数必须是一个可迭代的对象,新的内容是追加到原列表最后一个元素的后面。

heros = ["钢铁侠","绿巨人"]
heros.extend(["鹰眼","灭霸","雷神"])
heros
['钢铁侠', '绿巨人', '黑寡妇', '鹰眼', '灭霸', '雷神']

3)使用切片实现增加功能

s = [1,2,3,4,5]
s[len(s):]=[6]
s
[1, 2, 3, 4, 5, 6]
 
s[len(s):]=[7,8,9]
s
[1, 2, 3, 4, 5, 6, 7, 8, 9]

4)在列表的任意位置添加数据——insert(),第一个参数是插入的位置,第二个参数是插入的元素。

s=[1,3,4,5]
s.insert(1,2)
s
[1, 2, 3, 4, 5]

列表开头插入

s.insert(0,0)
s
[0, 1, 2, 3, 4, 5]

列表末尾插入

s.insert(len(s),6)
s
[0, 1, 2, 3, 4, 5, 6]

4、列表——删

1)将指定的元素删除,remove方法
注意:如果列表中存在多个匹配的元素,name它只会删除第一个。
如果指定的元素不存在,那么程序就会报错。

heros.remove("灭霸")
heros
['钢铁侠', '绿巨人', '黑寡妇', '鹰眼', '雷神']

2)删除某个位置上的元素,pop方法,它的参数就是元素的下标索引值

heros.pop(2)
'黑寡妇'
heros
['钢铁侠', '绿巨人', '鹰眼', '雷神']

3)清空列表,clear

heros.clear()
heros
[]

5、列表——改

列表和字符串最大的区别就是,列表是可变的,而字符串是不可变的。
替换列表中的元素和访问列表类似,都是使用下标索引的方法。用赋值运算符就可以将新的值给替换进去了。
1)单个元素的替换

heros = ["蜘蛛侠","绿巨人","黑寡妇","鹰眼","灭霸","雷神"]
heros[4]="钢铁侠"
heros
['蜘蛛侠', '绿巨人', '黑寡妇', '鹰眼', '钢铁侠', '雷神']

2)多个元素的替换——切片
A.将赋值号(=)左边指定的内容删除
B.将包含在赋值号(=)右边的可迭代对象中的片段插入左边被删除的位置

heros[3:]=["武松","林冲","李逵"]
heros
['蜘蛛侠', '绿巨人', '黑寡妇', '武松', '林冲', '李逵']

3)如果列表中都是数字,对列表中的元素从小到大排序,sort()方法
s.sort(key=None,reverse=False),对列表中的元素进行原地排序(key参数用于指定一个用于比较的函数;reverse参数用于指定排序结果是否反转)

nums = [3,1,9,6,8,3,5,3]
nums.sort()
nums
[1, 3, 3, 3, 5, 6, 8, 9]

4)从大到小排序,revers(),原地反转列表中的元素

nums.reverse()
nums
[9, 8, 6, 5, 3, 3, 3, 1]


 
nums = [3,1,9,6,8,3,5,3]
nums.sort(reverse=True)
nums
[9, 8, 6, 5, 3, 3, 3, 1]

6、列表——查

1)查看列表中有多少个某元素,count方法

nums.count(3)
3

2)查找某个元素的索引值,index()

Index(x,start,end),可以指定查找的开始和结束位置。
heros.index("绿巨人")
1

3)可以与替换结合使用,如果不知道某个元素的索引值,想替换该元素时。

heros[heros.index("绿巨人")]="神奇女侠"
heros
['蜘蛛侠', '神奇女侠', '黑寡妇', '武松', '林冲', '李逵']

4)浅拷贝1:拷贝列表,copy()

nums = [3,1,9,6,8,3,5,3]
nums_copy1 = nums.copy()
nums_copy1
[3, 1, 9, 6, 8, 3, 5, 3]

5)浅拷贝2:使用切片来实现拷贝

nums_copy2 = nums[:]
nums_copy2
[3, 1, 9, 6, 8, 3, 5, 3]

7、列表的运算

1)列表加法——拼接

s = [1,2,3]
t = [4,5,6]
s+t
[1, 2, 3, 4, 5, 6]

2)列表乘法——重复列表内部的所有元素若干次

s * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

8、嵌套列表——二维列表

二维列表的直接应用就是举证。

matrix = [[1,2,3],[4,5,6],[7,8,9]]
matrix
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
 
matrix = [[1,2,3],
               [4,5,6],
               [7,8,9]]
matrix
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

9、访问嵌套列表

1)访问嵌套列表中的元素,可以使用循环来实现,迭代一个列表使用一层循环,迭代嵌套列表我们相应的使用嵌套循环。

for i in matrix:
    for each in i:
        print(each)
        
1
2
3
4
5
6
7
8
9
 
for i in matrix:
    for each in i:
        print(each,end="  ")
    print()
    
1  2  3  
4  5  6  
7  8  9  

2)通过下标访问嵌套列表

matrix[0]
[1, 2, 3]
matrix[0][0]
1

3)通过循环语句来创建并初始化二维列表

A = [0] * 3
A
[0, 0, 0]
for i in range(3):
    A[i] = [0] * 3
    
A
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

需要注意有个错误写法

B = [[0] * 3] * 3
B
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

因为当我们要修改其中某个元素的时候,则会发现不同

A [1][1] = 1
A
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
B [1][1] = 1
B
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]

3)同一性运算符——is
is用于检验两个变量是否指向同一个对象的一个运算符,Python对于不同对象的存储机制是不一样的,字符串是不可变的,但列表是可变的,Python无法确定用户会何时向列表中添加或删除元素。

x = "Love"
y = "Love"
x is y
True
 
x=[1,2,3]
y=[1,2,3]
x is y
False

刚才的错误写法的校验和追根溯源

A[0] is A[1]
False
B[0] is B[1]
True

AB在Python中的内存布局如下:
B试图通过乘号对一个嵌套列表进行拷贝,但它拷贝的只是对同一个列表的引用。
在这里插入图片描述

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

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

相关文章

ETL快速拉取物流信息

我国作为世界第一的物流大国,但是在目前的物流信息系统还存在着几大的痛点。主要包括以下几个方面: 数据孤岛:有些物流企业各个部门之间的数据标准不一致,难以实现数据共享和协同,容易导致信息孤岛。 操作繁琐&#x…

【论文阅读】【yolo系列】YOLO-Pose的论文阅读

Abstract 我们介绍YOLO-pose,一种无热图联合检测的新方法,基于流行的YOLO目标检测框架的图像二维多人姿态估计。 【现有方法的问题】现有的基于热图的两阶段方法是次优的,因为它们不是端到端可训练的,训练依赖于surrogate L1 loss…

常用的消息中间件RabbitMQ

目录 一、消息中间件 1、简介 2、作用 3、两种模式 1、P2P模式 2、Pub/Sub模式 4、常用中间件介绍与对比 1、Kafka 2、RabbitMQ 3、RocketMQ RabbitMQ和Kafka的区别 二、RabbiMQ集群 RabbiMQ特点 RabbitMQ模式⼤概分为以下三种: 集群中的基本概念: 集…

unity学习(19)——客户端与服务器合力完成注册功能(1)入门准备

逆向服务器用了三天的时间,但此时觉得一切都值,又可以继续学习了。 服务器中登录请求和注册请求由command变量进行区分,上一层的type变量都是login。 public void process(Session session, SocketModel model) {switch (model.Command){ca…

Linux常见基本指令

本文将详细的介绍Linux中各常见指令的用法,并且在每个指令都有使用样例。一共有以下指令: 1. man指令 2.目录基础指令:2.1 pwd指令、2.2 ls指令、2.3 cd指令 3.文件创建与删除:3.1 touch指令、3.2 mkdir指令、3.3 rmdir 指令 &…

FL Studio21.2.3更新哪些新功能?中文汉化版如何下载

FL Studio 21.2.3的更新会带来一些变化,这些变化主要集中在以下几个方面: 功能增强和改进:随着版本的更新,FL Studio可能会引入一些新的功能或改进现有功能。这些新功能可能包括新的音频处理工具、效果器、虚拟乐器或混音选项&am…

智慧公厕是什么?智慧公厕对智慧城市的意义

城市的信息化发展需要催化了智慧城市,公共厕所作为城市的重要民生设施,如何实现更高阶的信息化建设,成为一个重要课题。那么,智慧公厕是什么?为什么它对智慧城市的建设如此重要?本文以智慧公厕源头厂家广州…

五种多目标优化算法(MOAHA、MOGWO、NSWOA、MOPSO、NSGA2)性能对比,包含6种评价指标,9个测试函数(提供MATLAB代码)

一、5种多目标优化算法简介 1.1MOAHA 1.2MOGWO 1.3NSWOA 1.4MOPSO 1.5NSGA2 二、5种多目标优化算法性能对比 为了测试5种算法的性能将其求解9个多目标测试函数(zdt1、zdt2 、zdt3、 zdt4、 zdt6 、Schaffer、 Kursawe 、Viennet2、 Viennet3)&#xff…

论软件测试工程师 重要性!

在生活中,我们常常会遇到以下几种窘迫时刻: 准备骑共享单车出行,却发现扫码开锁半天,车子都没有反应;手机导航打车,却发现地图定位偏差很大,司机总是跑错地方;买个水,却…

【日常聊聊】计算机专业必看的电影

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 方向一:电影推荐 方向二:技术与主题 方向三:职业与人生 结语 我的其他博客 前言 计算机…

搜维尔科技:OptiTrack探索人类与技术之间关系的开创性表演

另一种蓝色通过 OptiTrack 释放创造力 总部位于荷兰的当代舞蹈团因其探索人类与技术之间关系的开创性表演而受到广泛赞誉。该公司由富有远见的编舞家大卫米登多普创立,不仅利用技术作为探索的主题,而且将其作为表达故事的动态工具。 “我一直对文化与…

Arcgis小技巧【17】——如何修改ArcGIS中影像的背景颜色

一、问题分析 在ArcGIS中,有时候会遇到影像有背景色,看上去很不美观。 尤其在多个影像叠加的时候,更是会造成遮挡的问题。 二、解决办法 首先,用【识别】工具在背景色是点击一下,查看弹出的窗口,记住背景…

VMware ESXi 8.0的安装、配置、使用

VMware ESXi 8.0的安装、配置、使用 ESXi的安装与配置下载镜像安装网络配置 Web控制台的管理操作激活开启直通网络配置修改电源模式创建虚拟机 其他ESXI秘钥克隆虚拟机 ESXi的安装与配置 下载镜像 官网:https://www.vmware.com/ 文档:https://docs.vm…

基础小白快速入门Python----数组的概念

啥是数组? 数组是一中基础的数据结构,用来存储单个或者多个数据元素 并且。数组内的元素必须为同一种类型。 元素在数组中占据特定的位置,通常称为索引或下标。数组的索引从0开始,这意味着第一个元素的位置是0,第二…

CTFHub技能树web之RCE(二)

第五题:远程包含 根据题目,使用远程包含进行 打开phpinfo,可以看到allow_url_fopen和allow_url_include都是On,因此可以使用php://input,由于代码会检查file中的内容,因此不能够使用php://filter包含文件&a…

芯课堂 | 一种用于振荡器的修调电路

​ 高精度时钟产生器是数模混合集成电路及数字集成电路的主要模块。晶体振荡器供与工艺、电源电压和温度无关的稳定时钟,但它与集成电路工艺不兼容,同时有相对较高的成本,这样它的应用就受到了一些限制。随着CMOS集成电路工艺和SOC技术的…

Flink 在蚂蚁实时特征平台的深度应用

摘要:本文整理自蚂蚁集团高级技术专家赵亮星云,在 Flink Forward Asia 2023 AI 特征工程专场的分享。本篇内容主要分为以下四部分: 蚂蚁特征平台特征实时计算特征 Serving特征仿真回溯 一、蚂蚁特征平台 蚂蚁特征平台是一个多计算模式融合的高…

【机器学习】数据清洗之处理重复点

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…

算法-旋转图像

1、算法来源 48. 旋转图像 - 力扣(LeetCode) 2、算法描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图…

华为OD机试真题-围棋的气-2023年OD统一考试(C卷)---python代码

题目: 代码: """ # 输入:2的倍数 第一个为行号 0-18 第二个为列号 0-18第一行为黑色 第二行为白色思路:先求黑色,进行去重棋子的位置,再求白色 逐个棋子求坐标。 """ d…