【Python基础系列】Part2. 列表

news2024/9/24 11:32:21

二、列表

1.列表介绍

定义:列表是由一系列按照一定顺序排列的元素组成。

Python中用[]表示列表,用,分割元素。

number = ["one", "two", "three"]
print(number)# ['one', 'two', 'three']

列表中的元素可以是不同类型

number = ["one", "tw'o", "three", 1, 0.5]
print(number)# ['one', "tw'o", 'three', 1, 0.5]

访问列表元素只需使用索引(索引从0开始, 第一个元素的索引为0,以此类推)。当你请求获取列表元素时,Python只返回该元素,而不包括方括号和引号。

print(number[0])# one

Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素。倒数第二个则是-2,以此类推。

print(number[-1]) #0.5
2.修改、添加、删除元素

修改元素的值,只需要将新值赋值给对应索引处即可

number[3] = "four"
print(number)#['one', "tw'o", 'three', 'four', 0.5]

在列表末尾添加元素

#append方法
number.append(0.5)
print(number)#['one', "tw'o", 'three', 'four', 0.5, 0.5]

在列表中插入元素

#使用insert()方法可以在列表任意位置插入新元素,只需要索引与要插入的值
number.insert(0, "zero")
print(number)#['zero', 'one', "tw'o", 'three', 'four', 0.5, 0.5]
#索引超出列表长度则添加在列表末尾,索引小于0则插入在最开始

删除元素

#使用del
#如果知道元素在列表中的位置,则可以使用del
#使用del语句将值从列表中删除后,你就无法再访问它了
del number[6]
print(number)#['zero', 'one', "tw'o", 'three', 'four', 0.5]
#使用pop()删除
#有时候,你要将元素从列表中删除,并接着使用它的值
#pop()可删除列表末尾的元素,并让你能够接着使用它
print(number.pop())#0.5

#告诉Pop()要删除的索引,它可以删除任意一个值
print(number.pop(0))#zero
print(number)#['one', "tw'o", 'three', 'four']

根据值删除元素

#remove()方法
number.remove("tw'o")
print(number)#['zero', 'one', 'three', 'four']
3.组织列表

列表排序

#使用sort()方法对列表永久排序
numbers = [1,4,3,2]
numbers.sort()#默认由小到大排序
print(numbers)#[1,2,3,4]
numbers.sort(reverse=True)#由大到小排序
print(numbers)#[4,3,2,1]
#使用sorted对列表进行临时性排序
#要保留列表元素原来的排列顺序,同时以特定的顺序呈现它们,可使用函数sorted()。
numbers = [1,3,4,2]
print(sorted(numbers))#[1,2,3,4]
print(sorted(numbers, reverse=True))#[4,3,2,1]

反转列表

#要反转列表元素的排列顺序,可使用方法reverse()。
l = ["a", "b", "d", "c"]
l.reverse()
print(l)#["c", "d", "b", "a"]

列表长度

#使用函数len()可快速获悉列表的长度
l = [1,3,2]
print(len(l))#3
5.遍历列表

for循环遍历列表

nums = [1,2,3]
for num in nums:
    print(num)
#1
#2
#3
#注意缩进以及冒号
6.数值列表

Python函数range()让你能够轻松地生成一系列的数字。

for value in range(1,5):
    print(value)
#1
#2
#3
#4
#注意是左闭右开

用range创建数值列表

numbers = list(range(1,6))
#[1,2,3,4,5]
#还可以指定步长
even_numbers = list(range(2,11,2))
#[2,4,6,8,10]

统计计算

numbers = [1,4,7]
print(min(numbers))#1
print(max(numbers))#7
print(sum(numbers))#12

使用列表解析式一行代码创建列表

squares = [value**2 for value in range(1,11)]
print(squares)#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

要使用这种语法,首先指定一个描述性的列表名,如squares;然后,指定一个左方括号, 并定义一个表达式,用于生成你要存储到列表中的值。在这个示例中,表达式为value2,它计算平方值。接下来,编写一个for循环,用于给表达式提供值,再加上右方括号。在这个示例中,for循环为for value in range(1,11),它将值1~10提供给表达式value**2。

7. 切片

处理列表的部分元素称为切片。

要创建切片,需要指定要使用的第一个元素与最后一个元素的索引。

nums = [1,2,3,4,5,6]
#获取前三个元素
#切片也是左闭右开
print(nums[0:3])#[1,2,3]
#没有指定第一个元素索引,则从列表开头开始
print(nums[:2])#[1,2]
#同理,没有指定最后一个元素索引,则到列表末尾
print(nums[1:])#[2,3,4,5,6]
#都没指定,则表示整个列表
print(nums[:])#[1,2,3,4,5,6]
#特别指出,切片后即使是和之前列表元素相同,也不再是同一个列表,你可以用id()方法去自行判断。这点可以用在想要复制列表但不希望另一个方法会改动原来列表的元素。

#负数切片
#可以使用负数当作切片的索引,只需关注好负数索引元素位置即可
print(nums[-3:])#[4,5,6]
print(nums[:-1])#[1,2,3,4,5]
8.复制列表

要复制列表,可创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引([:])。

nums = [1,2,3,4,5,6]
copy_nums = nums[:]
print(copy_nums)#[1,2,3,4,5,6]
nums_assign = nums
print(nums_assign)#[1,2,3,4,5,6]
#虽然切片复制列表输出一样,但他们已经不是同一个列表了。
#而赋值的话仍是同一个列表,变量名指向的内存地址相同
#因此,修改初始列表的话,nums_assign也会跟着变动,但是nums_copy就不会改变

在这里插入图片描述

9.元组

列表非常适合用于存储在程序运行期间可能变化的数据集。列表是可以修改的,这对处理网 站的用户列表或游戏中的角色列表至关重要。然而,有时候你需要创建一系列不可修改的元素, 元组可以满足这种需求。Python将不能修改的值称为不可变的,而不可变的列表被称为元组。

#元组看起来犹如列表,但使用圆括号而不是方括号来标识。定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
nums = (1,2)
print(nums[0])#1
#元组无法修改元素
#遍历元组
for num in nums:
    print(num)    

修改元组变量

#虽然不能修改元组的元素,但可以给存储元组的变量赋值。
nums = (1,2)
nums = (2,4)
print(nums)#(2,4)

创建空元组与单个元素元组

#创建空元组
nums = ()
#创建单个元素元组;一定要加逗号,不然会被当作括号括起来的元素
nums = (1,)
#创建空列表
nums = []
#可以使用type()来看具体的类型
nums_1 = (1,)
nums_2 = (1)
print(type(nums_1))#<class 'tuple'>
print(type(nums_2))#<class 'int'>
10.总结

学习到了:

  • 什么是列表
  • 列表中的元素
  • 如何操作列表元素
  • 对列表排序
  • 列表长度
  • 处理列表元素
  • for循环遍历列表
  • 创建数字列表以及相关操作
  • 切片
  • 元组

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

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

相关文章

netsh interface portproxy端口转发,从本地端口到本地端口不起作用的解决办法

开启IP V6 你虽然可能用不到IPV6,但是有些系统是需要用到IPV6的dll来做端口转发的. 如图,确保你联网的连接已经开启 IPV6 检查IP Helper服务 打开任务管理器 点击 服务 查看iphlpsvc是否启动状态,点击右键如果显示的是停止,就是已经启动了. 如果显示"启动服务"则…

drools规则引擎并发结果不准确问题记录

思路 首先&#xff0c;drools的整体思路比较简单&#xff0c;一个是加载&#xff0c;一个是执行&#xff01; 加载&#xff1a;把一个比较复杂的关系运算想办法放到drools里面&#xff01; 执行&#xff1a;让drools去计算这个复杂的运算&#xff0c;最终我们只需要取结果就好&…

广域网技术——SR-MPLS技术基础理论讲解

目录 SR-MPLS基础概念 使用Segment Routeing MPLS技术的优点 Segment Routeing MPLS的基本原理 SRGB Segment ID Bind SID 粘连标签 OSPF对于SR-MPLS的扩展 OSPF对邻接SID做了细分 10类LSA定义的TLV类型 10类LSA定义的TLV的报文格式 ISIS对SR-MPLS的扩展…

详解设计模式:模版方法模式

模板方法模式&#xff08;Template Method Pattern&#xff09;也被称为模板模式&#xff08;Template Pattern&#xff09;&#xff0c;是在 GoF 23 种设计模式中定义了的行为型模式。 模板方法模式 定义一个操作中的算法骨架&#xff0c;而将一些步骤延迟到子类中。模板方法使…

若依框架RuoYi项目运行启动教程【傻瓜式教程】

启动若依项目 1.官网下载代码 若依官网 若依在线文档 首先去官网下载代码 链接到码云下载&#xff0c;要么用git下载要么压缩包下载。 然后再IDEA打开项目 想要运行就要搭建好环境 2.搭建若依环境 按照文档要求配置环境 JDK > 1.8 (推荐1.8版本) Mysql > 5.7.0 (推…

Stable Diffusion 2.0 来了

Stable Diffusion 一经发布&#xff0c;就立刻在业界掀起巨大的波浪。我个人后知后觉&#xff0c;直到 Stable Diffusion V1.4 版本发布&#xff0c;才接触 Stable Diffusion (之前使用的是 Disco Diffusion)。这段时间&#xff0c;SD 团队也没闲着&#xff0c;很快就发布了 V2…

【华为上机真题 2022】停车场车辆统计

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

【Python】推荐三个好玩的图像处理库

1. 引言 Python是一门高级语言&#xff0c;它可以实现很多功能。Python强大的原因是什么&#xff1f;某种程度上&#xff0c;在于它所拥有的现成的库&#xff0c;使其在编程的各个方向上都易于使用。在本文中&#xff0c;我将向大家展示一些Python库&#xff0c;这些库非常有用…

node.js的模块化

目录 一、模块化的概念 1.什么是模块化 2.编程领域中的模块化 二、node.js中模块的分类 三、require() 加载模块 四. 模块作用域 五、module对象 六、module.exports对象 七、exports对象 八、CommonJS规定: 九、关于包&#xff08;第三方模块&#xff09; 十、解决…

阿里P8高级专家,耗时多年整理SpringBoot指南文档

前言 相信程序员们已经看过甚至动手操作过很多的springboot项目&#xff0c;在项目操作中需要各种插件的支持&#xff0c;其实&#xff0c;可能还有很多大家不知道的但是很方便的操作&#xff0c;小编今天就给大家把这份PDF分享出来&#xff0c;绝对是你以前没有见到过的。 1、…

springboot读取yml文件中的list列表、数组、map集合和对象

前言 springboot配置文件yml类型简单的风格&#xff0c;十分受大家的欢迎&#xff0c;支持字符string类型&#xff0c;支持列表list类型&#xff0c;支持集合map类型&#xff0c;支持数组array类型&#xff0c;支持类对象类型&#xff0c;下面我们来实战下这些形式的配置如何取…

聚观早报 | 国美电器被申请破产清算;首款太阳能汽车投入生产

今日要闻&#xff1a;网传国美电器被申请破产清算&#xff1b;全球首款太阳能汽车投入生产&#xff1b;苹果头显配套系统已改名为xrOS&#xff1b;马斯克计划植入脑机接口设备&#xff1b;特斯拉即将推出自动驾驶出租车网传国美电器被申请破产清算 12 月 2 日消息&#xff0c;据…

网站都变成灰色,有哪些方法可以快速实现?

有些时候我们需要把网站页面变成黑白色或灰色&#xff0c;特别是对于一些需要悼念的日子&#xff0c;以及一些影响力很大的伟人逝世或纪念日的时候&#xff0c;都会让网站的全部网页变成灰色&#xff08;黑白色&#xff09;&#xff0c;以表示我们对逝者或者英雄的缅怀和悼念。…

在校大学生如何申请软著,手把手教会你(内有免费模板)

目录 一.前言 二.以学校为单位全流程申请&#xff08;以我的学校为例&#xff09; 1.问问导员谁负责管软著申请这块的&#xff0c;联系他&#xff0c;问需要什么。 2.为了防止学生买软著转头申请 3.按以下要求准备材料 4.没问题就发给老师&#xff0c;一般要破费一下 5.…

View基础知识-位置大小和滑动

前言 这篇文章可以作为基础看看&#xff0c;但是有时候基础就是细节&#xff0c;不一定所有人都记得&#xff0c;所以基础也要记录一下。都熟悉的话也可以看看其他系列文章&#xff1a; View事件分发机制&#xff08;源码分析篇&#xff09; Android一步一步追踪View的工作原…

【车辆动力】基于Matlab模拟停车动力学

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

Python 音频处理以及可视化 Amplitude,MFCC,Mel Spectrogram, librosa 库

利用python库 librosa库对于音频文件进行预处理&#xff0c;以及可视化操作。 1. Load Audio Data 导入音频 将音频文件&#xff08;这里使用苹果录音文件 .m4a 格式&#xff09;导入librosa&#xff0c;音频格式可以为其它&#xff08;甚至视频文件mp4也是可以的&#xff09…

【Docker】Dockerfile:常见保留字、使用案例

Dockerfile是用来构建Docker镜像的文本文件&#xff0c;是由一条条构建镜像所需的指令和参数构成的脚本。 官网&#xff1a;链接 构建三步骤 编写Dockerfile文件构建镜像&#xff1a;docker build用镜像运行容器实例&#xff1a;docker run 一、常用的保留字 二、使用案例 要…

Spring MVC统一异常处理的3种方式(附带实例)

在 Spring MVC 应用的开发中&#xff0c;不管是对底层数据库操作&#xff0c;还是业务层或控制层操作&#xff0c;都会不可避免地遇到各种可预知的、不可预知的异常需要处理。 如果每个过程都单独处理异常&#xff0c;那么系统的代码耦合度高&#xff0c;工作量大且不好统一&a…

html5期末大作业:基于html+css+javascript+jquery+bootstarp响应式图书电商HTML模板网上书店(25页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…