Day27:for-in语句

在 Python 中,for-in 语句是最常用的控制流语句之一,用于迭代序列(如列表、元组、字符串等)中的每个元素,并在每次迭代时执行特定的操作。for-in 语句通常用于遍历容器类型的数据结构,并对其每个元素进行处理。掌握 for-in 语句是 Python 编程的重要技能。


1. for-in 语句的基本语法

for-in 语句的基本语法结构如下:

for 变量 in 可迭代对象:
    # 执行的操作
  • 变量:用于接收可迭代对象中每次迭代的元素。
  • 可迭代对象:一个可以迭代的对象(如列表、元组、字符串、字典等)。
  • 执行的操作:在每次迭代时要执行的代码。

示例:遍历列表中的元素

fruits = ['apple', 'banana', 'cherry']

for fruit in fruits:
    print(fruit)

输出结果:

apple
banana
cherry

在这个示例中,for 语句遍历了 fruits 列表中的每一个元素,并逐个打印出来。


2. 遍历不同的可迭代对象

Python 的 for-in 语句可以用于遍历多种可迭代对象,包括列表、元组、字符串、字典等。

2.1 遍历列表

列表是最常见的可迭代对象,for-in 语句可以逐一访问列表中的每个元素。

numbers = [1, 2, 3, 4, 5]

for num in numbers:
    print(num)

输出结果:

1
2
3
4
5

2.2 遍历元组

元组和列表类似,不同之处在于元组是不可变的。我们也可以用 for-in 语句遍历元组。

coordinates = (10, 20, 30)

for coordinate in coordinates:
    print(coordinate)

输出结果:

10
20
30

2.3 遍历字符串

字符串是一个字符的序列,for-in 语句可以遍历字符串中的每个字符。

word = "hello"

for char in word:
    print(char)

输出结果:

h
e
l
l
o

2.4 遍历字典

字典的遍历稍有不同,因为字典存储的是键值对。在 Python 中,可以遍历字典的键、值,或者同时遍历键和值。

遍历字典的键:

person = {'name': 'Alice', 'age': 25, 'city': 'New York'}

for key in person:
    print(key)

输出结果:

name
age
city

遍历字典的值:

for value in person.values():
    print(value)

输出结果:

Alice
25
New York

同时遍历字典的键和值:

for key, value in person.items():
    print(f"{key}: {value}")

输出结果:

name: Alice
age: 25
city: New York

3. for-in 语句的应用场景

3.1 计算列表中的总和

假设你有一个整数列表,想要计算列表中所有元素的和,可以使用 for-in 语句:

numbers = [1, 2, 3, 4, 5]
total = 0

for num in numbers:
    total += num

print("总和:", total)

输出结果:

总和: 15

在这个示例中,我们通过遍历列表中的每个元素,并将它们累加到 total 变量中,最终得到总和。

3.2 查找列表中的最大值

你可以通过 for-in 语句遍历列表,找到其中的最大值。

numbers = [10, 20, 50, 30, 40]
max_value = numbers[0]

for num in numbers:
    if num > max_value:
        max_value = num

print("最大值:", max_value)

输出结果:

最大值: 50

在该示例中,我们遍历了列表中的每个元素,并通过条件判断找到最大值。

3.3 字符串反转

使用 for-in 语句可以反转字符串中的字符顺序。

word = "hello"
reversed_word = ""

for char in word:
    reversed_word = char + reversed_word

print("反转后的字符串:", reversed_word)

输出结果:

反转后的字符串: olleh

在这个例子中,我们逐个访问字符串中的字符,并将每个字符添加到新的字符串 reversed_word 的前面,从而实现字符串反转。


4. 嵌套 for-in 循环

有时我们需要处理多维结构,如二维列表或矩阵。在这种情况下,我们可以使用嵌套的 for-in 循环来访问每个元素。

示例:遍历二维列表

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

for row in matrix:
    for element in row:
        print(element, end=" ")
    print()  # 每行后换行

输出结果:

1 2 3 
4 5 6 
7 8 9 

在这个示例中,外层 for 循环遍历每一行,内层 for 循环遍历每一行中的元素。


5. range() 函数与 for-in 语句结合

range() 函数是生成整数序列的内置函数,常用于生成循环的次数。你可以将 range()for-in 语句结合使用来执行重复的任务。

示例:打印 1 到 5 的数字

for i in range(1, 6):
    print(i)

输出结果:

1
2
3
4
5

示例:计算 1 到 10 的总和

total = 0
for i in range(1, 11):
    total += i

print("1到10的总和:", total)

输出结果:

1到10的总和: 55

在这里,range(1, 11) 生成了从 1 到 10 的整数序列,for-in 语句遍历了这些整数,并将它们累加到 total 中。


6. for-in 语句的小技巧

6.1 continuebreak 语句

for-in 循环中,你可以使用 continue 跳过当前的循环迭代,直接进入下一次迭代;也可以使用 break 终止整个循环,跳出循环体。

示例:使用 continue 跳过偶数

for num in range(1, 11):
    if num % 2 == 0:
        continue
    print(num)

输出结果:

1
3
5
7
9

示例:使用 break 提前退出循环

for num in range(1, 11):
    if num == 5:
        break
    print(num)

输出结果:

1
2
3
4

7. 课后练习

7.1 计算列表中所有数字的平方

给定一个数字列表,输出每个数字的平方。

7.2 找出字符串中的元音字母

遍历一个字符串,找出其中所有的元音字母并输出。

7.3 统计字典中值的数量

给定一个字典,统计其中每个值出现的次数。


8. 本章小结

for-in 语句是 Python 中非常重要的一种控制结构,广泛应用于遍历各种可迭代对象,进行数据处理和操作。通过掌握 for-in 语句,能够有效地处理数组、列表、字典等数据结构,进行灵活的迭代操作。结合 range() 函数、嵌套循环及 continuebreak 等语句,能够提高代码的执行效率和可读性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

lec7-路由与路由器

lec7-路由与路由器 1. 路由器硬件 路由器的硬件部分: 断电失去: RAM断电不失去:NVRAM, Flash, ROMinterface也算是一部分 路由器是特殊组件的计算机 console 口进行具体的调试 辅助口(Auxiliary&…

spring防止重复点击,两种注解实现(AOP)

第一种:EasyLock 简介 为了简化可复用注解,自己实现的注解,代码简单随拿随用 使用方式 1.创建一个注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Documented public interface EasyLock {long waitTime() default …

Linux-Ubuntu之I2C通信

Linux-Ubuntu之I2C通信 一,I2C通信原理1.写时序2.读时序 二,代码实现三,显示 一,I2C通信原理 使用I2C接口驱动AP3216C传感器,该传感器能实现两个效果,一个是感应光强,另一个是探测物体与传感器…

音视频入门基础:MPEG2-PS专题(4)——FFmpeg源码中,判断某文件是否为PS文件的实现

一、引言 通过FFmpeg命令: ./ffmpeg -i XXX.ps 可以判断出某个文件是否为PS文件: 所以FFmpeg是怎样判断出某个文件是否为PS文件呢?它内部其实是通过mpegps_probe函数来判断的。从《FFmpeg源码:av_probe_input_format3函数和AVI…

框架模块说明 #09 日志模块_01

背景 日志模块是系统的重要组成部分,主要负责记录系统运行状态和定位错误问题的功能。通常,日志分为系统日志、操作日志和安全日志三类。虽然分布式数据平台是当前微服务架构中的重要部分,但本文的重点并不在此,而是聚焦于自定义…

【数据仓库】hadoop3.3.6 安装配置

文章目录 概述下载解压安装伪分布式模式配置hdfs配置hadoop-env.shssh免密登录模式设置初始化HDFS启动hdfs配置yarn启动yarn 概述 该文档是基于hadoop3.2.2版本升级到hadoop3.3.6版本,所以有些配置,是可以不用做的,下面仅记录新增操作&#…

算法题(25):只出现一次的数字(三)

审题: 该题中有两个元素只出现一次并且其他元素都出现两次,需要返回这两个只出现一次的数,并且不要求返回顺序 思路: 由于对空间复杂度有要求,我们这里不考虑哈希表。我们采用位运算的方法解题 方法:位运算 首先&#…

将机器学习预测模型融入AI agent的尝试(一)

将机器学习临床预测模型融入AI agent的尝试(一) 我主要是使用机器学习制作临床预测模型和相关的应用,最近考虑的事情是自己之前的的工作能不能和AI agent进行融合,将AI 对自然语言理解能力和预测模型的预测能力结合在一起&#x…

51单片机——按键实验

由于机械点的弹性作用,按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开,因而在闭合和断开的瞬间均伴随着一连串的抖动。抖动时间的长短由按键的机械特性决定的,一般为 5ms 到 10ms,为了确保 CPU 对按键的…

电子邮件对网络安全的需求

( 1)机密性:传输过程中不被第三方阅读到邮件内容,只有真正的接收方才可以阅读邮件。( 1.5 分) ( 2)完整性:支持在邮件传输过程中不被篡改,若发生篡改&#…

vue路由模式面试题

vue路由模式 1.路由的模式有哪些?有什么区别? history和hash模式 区别: 1.表现的形态不同: 在地址栏url中:hash模式中带有**#**号,history没有 2.请求错误时表现不同: 在hash模式中,对于404地址请求时,不会进行请求 但是在history模式中,对于404请求时,仍然会进行请求…

电子应用设计方案86:智能 AI背景墙系统设计

智能 AI 背景墙系统设计 一、引言 智能 AI 背景墙系统旨在为用户创造一个动态、个性化且具有交互性的空间装饰体验,通过融合先进的技术和创意设计,提升室内环境的美观度和功能性。 二、系统概述 1. 系统目标 - 提供多种主题和风格的背景墙显示效果&…

Python爬虫 - 豆瓣图书数据爬取、处理与存储

文章目录 前言一、使用版本二、需求分析1. 分析要爬取的内容1.1 分析要爬取的单个图书信息1.2 爬取步骤1.2.1 爬取豆瓣图书标签分类页面1.2.2 爬取分类页面1.2.3 爬取单个图书页面 1.3 内容所在的标签定位 2. 数据用途2.1 基础分析2.2 高级分析 3. 应对反爬机制的策略3.1 使用 …

西安电子科技大学初/复试笔试、面试、机试成绩占比

西安电子科技大学初/复试笔试、面试、机试成绩占比 01通信工程学院 02电子工程学院 03计算机科学与技术学院 04机电工程学院 06经济与管理学院 07数学与统计学院 08人文学院 09外国语学院 12生命科学与技术学院 13空间科学与技术学院 14先进材料与纳米科技学院 15网络与信息安…

多模态论文笔记——CogVLM和CogVLM2(副)

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍多模态模型的LoRA版本——CogVLM和CogVLM2。在SD 3中使用其作为captioner基准模型的原因和优势。 文章目录 CogVLM论文背景VLMs 的任务与挑战现有方法及…

智慧工地信息管理与智能预警平台

建设背景与政策导向 智慧工地信息管理与智能预警平台的出现,源于工地管理面临的诸多挑战,如施工地点分散、危险区域多、监控手段落后等。随着政府对建筑产业现代化的积极推动,各地纷纷出台政策支持智慧工地的发展,旨在通过信息技…

【从零开始入门unity游戏开发之——C#篇42】C#补充知识——随机数(Random)、多种方法实现string字符串拼接、语句的简写

文章目录 一、随机数1、Random.Next()生成随机整数示例:生成一个随机整数生成指定范围内的随机整数 2、Random.NextSingle生成随机浮点数示例:生成随机浮点数 3、 生成随机字母或字符示例:生成随机字母示例:生成随机小写字母 二、…

「Mac畅玩鸿蒙与硬件54」UI互动应用篇31 - 滑动解锁屏幕功能

本篇教程将实现滑动解锁屏幕功能,通过 Slider 组件实现滑动操作,学习事件监听、状态更新和交互逻辑的实现方法。 关键词 滑动解锁UI交互状态管理动态更新事件监听 一、功能说明 滑动解锁屏幕功能包含以下功能: 滑动解锁区域:用…

VScode SSH 错误:Got bad result from install script 解決

之前vscode好好的,某天突然连接报错如下 尝试1. 服务器没有断开,ssh可以正常连接 2. 用管理员权限运行vscode,无效 3. 删除服务器上的~/.vscode-server 文件夹,无效 试过很多后,原来很可能是前一天anaconda卸载导致注册表项 步…

[论文笔记]Representation Learning with Contrastive Predictive Coding

引言 今天带来论文 Representation Learning with Contrastive Predictive Coding的笔记。 提出了一种通用的无监督学习方法从高维数据中提取有用表示,称为对比预测编码(Contrastive Predictive Coding,CPC)。使用了一种概率对比损失, 通过使用负采样使…