Python学习(二)操作列表

一、列表的遍历

每个缩进的代码行都是循环的一部分,且将针对列表中的每个值都执行一次。因此,可对列表中的每个值执行任意次数的操作。

magicians = ['alice', 'david', 'carolina']
for magician in magicians:print(magician)

注意:

1、遍历的时候,后面需要加冒号;

2、遍历下面的内容时候,至少需要一行内容,且这行内容要缩进;

# 遍历的时候下面没有缩进的代码行-->会报错
magicians = ['alice', 'david', 'carolina']
for magician in magicians:

3、缩进和不缩进的差别

3.1缩进的行–>重复执行;

magicians = ['alice', 'david', 'carolina']
for magician in magicians:print(magician)print(magician.title() + ", that was a great trick!")
##输出结果为如下展示:
alice
Alice, that was a great trick!
david
David, that was a great trick!
carolina
Carolina, that was a great trick!

3.2没缩进的行–>只执行一次(值为列表末尾的值);

遍历完毕的时候,如果下面打印的内容没有缩。那么只会执行一次,且值为列表末尾的值

magicians = ['alice', 'david', 'carolina']
for magician in magicians:print(magician)
print(magician.title() + ", that was a great trick!")#输出结果为如下展示:
alice
david
carolina
Carolina, that was a great trick!

二、使用函数 range()

2.1规则:左包右开

#输出1 2 3 4
for value in range(1,5):
print(value)
#输出1 2 3 4 5
for value in range(1,6):
print(value)

2.2使用函数 range() 时,还可指定步长

语法

range(startNumber,endNumber,stepLength)
startNumber:开始的数字;
endNumber:结束的最大数字,且要比startNumber大;
stepLength:一次累加多少;

even_numbers = list(range(2,11,2))
print(even_numbers)
#输出结果
[2, 4, 6, 8, 10]

三、对数字列表执行简单的统计计算

>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits)
0
>>> max(digits)
9
>>> sum(digits)
45

四、列表解析

前面介绍的生成列表 squares 的方式包含三四行代码,而列表解析让你只需编写一行代码就能生成这样的列表。 列表解析 将 for 循环和创建新元素的代码合并成一行,并自动
附加新元素。面向初学者的书籍并非都会介绍列表解析,这里之所以介绍列表解析,是因为等你开始阅读他人编写的代码时,很可能会遇到它们。

请注意,这里的 for 语句末尾没有冒号。

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

五、切片

切片:列表的一部分;

5.1语法

[start🔚step]
start:开始截取的位置,截取的内容包含该位置。
end:结束截取的位置,截取的内容不包含该结束位置。
step:截取的步长,默认值为1。step为正的时候,代表从左到右截取。step为负的时候,从右到左反向截取
例如:
[:]:提取从开头到结尾的整个字符串的全部内容;
[start:]:从start下标字符串开始截取,直到字符串的末尾(包含末尾字符);
[:end]:从字符串的开始字符截取,直到下标end结束(不包含这个end下标);
[start:end]:从start下标开始截取,直到下标end结束(不包含这个end下标);
[start🔚step]:从start下标字符串开始截取,直到下标end结束(不包含这个end下标),步长为step;
[::2]:每隔一个输出内容;
[::-1]:将内容反序输出;
[-2:-8:-1]:将从下标-2开始(包含自己),直到下标-8(不包含自己)结束内容反序输出;
备注:反序输出的时候start一定要在end的右边

5.2规则:左包右开

从下标X开始,到下标Y结束,但是不包含下标Y的值

# 从下标0开始,输出到下标3的值结束,但是不包含下标3的值
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
#输出结果:
['charles', 'martina', 'michael']

5.3如果你没有指定第一个索引, Python 将自动从列表开头开始

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
#输出结果:
['charles', 'martina', 'michael', 'florence']

5.4如果你没有指定最后一个索引, Python 将自动到列表末尾结束

①开始的下标是正数

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
#输出结果:
['michael', 'florence', 'eli']

②开始的下标是负数

# 输出倒数三个值
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[-3:])
#输出结果:
['michael', 'florence', 'eli']

5.5下标都为负数

如果下标都是负数,那么最后一位的下标是从-1开始计算的

#从下标-8的地方(倒数第八个)开始,直到下标-2结束(不包含下标-2的那个值)s="欢迎大家来到我的博客学习python课程"
result=s[-8:-2]#下标-8的值是p;下标-2的值是"课",但是不包含"课"
result=s[-2:-8:-1]#下标-2的值是"课";下标-8的值p,但是不包含p;反序输出
print(result)
# 输出
python
课nohty

5.6遍历切片

输出前三个队员的姓名

players = ['charles', 'martina', 'michael', 'florence', 'eli']
print("Here are the first three players on my team:")
for player in players[:3]:print(player.title())

六、复制列表

6.1复制列表+地址不变

friend_foods = my_foods

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)
# 输出结果:
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']
['pizza', 'falafel', 'carrot cake', 'cannoli', 'ice cream']

6.2复制列表+地址变化

friend_foods = my_foods[:]

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
friend_foods.append('ice cream')
print(my_foods)
print(friend_foods)
# 输出结果:
['pizza', 'falafel', 'carrot cake', 'cannoli']
['pizza', 'falafel', 'carrot cake', 'ice cream']

总结:
1.friend_foods = my_foods
是将地址给了另外一个列表,他们都共同指向了一个相同的地址;
2.friend_foods = my_foods[:]
是将my_foods的元素都复制了一份到friend_foods 中;然后他们互相之间互不影响;

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

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

相关文章

浅析RAG技术:大语言模型的知识增强之道

浅析RAG技术:大语言模型的知识增强之道 🏠 引言:当生成遇到检索 在人工智能领域,大型语言模型(LLMs)如GPT-4、Llama3等展现出了惊人的文本生成能力,但它们也面临着知识滞后、事实性错误等挑战。Retrieval-Augmented …

Linux Vim 编辑器的使用

Vim 编辑器的使用 一、安装及介绍二、基础操作三、高级功能四、配置与插件 一、安装及介绍 Vim是一款强大且高度可定制的文本编辑器,相当于 Windows 中的记事本。具备命令、插入、底行等多种模式。它可通过简单的键盘命令实现高效的文本编辑、查找替换、分屏操作等…

Windows 图形显示驱动开发-WDDM 2.4功能-基于 IOMMU 的 GPU 隔离(三)

帧缓冲区保留 对于必须在电源转换期间将帧缓冲区的保留部分保存到系统内存的驱动程序,Dxgkrnl 会在适配器初始化时对所需内存进行用量认可。 如果驱动程序报告 IOMMU 隔离支持,则 Dxgkrnl 将在查询物理适配器上限后立即调用 DXGKDDI_QUERYADAPTERINFO&a…

UML之扩展用例

UML用例建模面向业务实现或者系统功能,每一个用例实现一个完整的业务或者功能。而一个完整的用例也可能有一些不是必需的附加功能,或者在该用例已经实现后需要添加一些新功能,此时可以通过UML提供的扩展用例机制描述类似这样的场景。 例如对…

大数据学习(95)-谓词下推

🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…

行式存储(Row-based Storage)与列式存储(Column-based Storage)详细对比

行式存储(Row-based Storage)与列式存储(Column-based Storage)详细对比 1. 数据组织方式 类型行式存储列式存储存储结构按行存储数据,每条记录的所有字段(列)连续存放(如一条订单的…

Seg-Zero:通过认知强化实现的推理链引导分割

文章目录 速览摘要1. 引言2. 相关工作2.1. 大模型中的推理能力2.2. 结合推理的语义分割2.3. 用于分割任务的 MLLMs 3. 方法3.1. 流程建模(Pipeline Formulation)3.2. Seg-Zero 模型3.3. 奖励函数(Reward Functions)3.4. 训练&…

win server2022 限制共享文件夹d

点击配额管理中的配额 然后创建配额 导入要配额的文件即可 然后确定即可

Docker容器部署Java项目(详细版)

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Docker容器部署Java项目1. 环境及准备2. 项目…

C语言深度解析:从零到系统级开发的完整指南

一、C语言的核心特性与优势 1. 高效性与直接硬件控制 C语言通过编译为机器码的特性,成为系统级开发的首选语言。例如,Linux内核通过C语言直接操作内存和硬件寄存器,实现高效进程调度。 关键点: malloc/free直接管理内存&#…

Pytorch实现之基于GAN+序列后向选择的情绪识别增强方法

简介 简介:在WGAN-GP+CGAN的基础上利用了序列后向选择方法来挑选优质样本补充到训练集当中,丰富训练数据集。 论文题目:基于生成对抗网络的情绪识别数据增强方法 期刊:传感技术学报 摘要:使用深度学习方法构建高准确率的情绪识别模型需要大量的情绪脑电数据。 生成对抗…

软件工程面试题(十九)

1、十六进制的216转换十进制是多少: 216是16进制,转10进制: =2*16^2+1*16^1+6*16^0 =512+16+6 =536 2、Java中的XML解析方式: dom和jdom解析 Java中处理XML文档的标准API有两种,即XML的简单API(SAX,Simple API for XML)和文档对象模型(DOM,…

大模型AI Agent的工作原理与安全挑战

大模型AI Agent的工作原理与安全挑战 0x00 引言 智能体(AI Agent)作为大语言模型技术(LLM)的具体应用形式,突破了传统语言模型仅限于文字输入与输出的局限性。其通过感知环境、规划决策及执行行动的闭环机制&#xf…

腻子刮的遍数越多越好?刮的越厚墙面越平?

很多业主对刮腻子存在误区,感觉腻子刮的越厚越好,遍数越多越好。同时认为腻子有找平的作用,感觉墙面不平,就是腻子刮的不行。 有一位业主给我留言,说家里的腻子刮了两遍,然后油工师傅就开始打磨刷漆了&…

「深入解析 Chromium Message Pump:消息循环的核心驱动」

MessagePump 是 Chromium 中 消息循环(Message Loop) 的核心组件之一,负责在不同平台上管理和分发消息、事件,并协调任务调度。 在浏览器这样的 GUI 应用中,事件循环(Event Loop)是非常重要的&…

3d pose 指标和数据集

目录 3D姿态估计、3维重建指标: 数据集 EHF数据集 SMPL-X 3D姿态估计、3维重建指标: MVE、PMVE 和 p-MPJPE 都是用于评估3D姿态估计、三维重建等任务中预测结果与真实数据之间误差的指标。 MVE (Mean Vertex Error):是指模型重建过程中每个顶点的预测位置与真实位置之间…

大智慧大数据面试题及参考答案

目录 MySQL 的事务隔离级别是什么? MySQL 的覆盖索引是怎样的? MySQL 常用的存储引擎有哪些,它们之间的区别是什么? 在 MySQL 中,如果读取很大的数据集,同时进行一边 select 一边写入操作,结果会怎样? 当 ES 出现分词错误的情况时,应该如何处理? Kafka 如何保证…

微服务的简单认识

目录 一、微服务架构简介 二、微服务架构风格和分布式系统架构的关系 三、微服务组成 一、微服务架构简介 微服务是一种构建分布式系统的架构风格,它将一个大型的应用程序拆分成多个小型的、独立部署的服务单元,每个服务单元都专注于特定的业务功能,并通过轻量级的通信机…

Spring的 @Conditional @ConditionalOnProperty 注解 笔记250330

Spring的 Conditional ConditionalOnProperty 注解 Spring 的 Conditional 与 ConditionalOnProperty 注解详解 在 Spring 框架中,Conditional 和 ConditionalOnProperty 是用于动态控制 Bean 注册的重要注解。虽然它们都服务于条件化配置,但定位和使用…

电路学习——MOS栅极驱动电阻取值(2025.03.30)

参考链接1: 驱动芯片的驱动电流的选型和计算 参考链接2: NMOS栅极驱动电阻Rg阻值和功率的计算,NMOS栅极驱动电阻Rg的作用,如何防止NMOS误开通 单片机直接驱动NMOS的方法 RLC谐振电路 智能车BLDC 在此感谢各位前辈大佬的总结,写这个只是为了记…