Python循环与遍历详解:从入门到进阶

        在Python编程中,循环和遍历是最基础但极其重要的知识点。理解并掌握这部分内容,是编写高效、清晰代码的前提。本文将从for循环和while循环的基本语法出发,逐步深入探讨range、enumerate、zip、列表推导式、字典遍历等Python中常见的遍历技巧,并通过多个示例演示如何灵活应用这些技巧解决实际问题。


一、for循环基础

for循环用于遍历可迭代对象(如列表、字符串、字典、集合等)。其基本语法如下:

for item in iterable:# 执行代码块

示例:遍历列表

fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:print(fruit)

遍历字符串

for char in "Python":print(char)

二、while循环基础

while循环用于在满足特定条件下反复执行一段代码。

while condition:# 执行代码块

示例:输出1到5

i = 1
while i <= 5:print(i)i += 1

三、range()函数

range()用于生成指定范围的数字序列,常与for配合使用。

for i in range(5):print(i)  # 输出 0 到 4

指定起始值和步长

for i in range(1, 10, 2):print(i)  # 输出奇数 1,3,5,7,9

四、enumerate()函数

enumerate()可在遍历时获取索引与元素。

names = ['Alice', 'Bob', 'Charlie']
for index, name in enumerate(names):print(index, name)

五、zip()函数

zip()可以并行遍历多个可迭代对象。

names = ['Tom', 'Jerry']
ages = [25, 30]
for name, age in zip(names, ages):print(f'{name} is {age} years old')

六、字典遍历

Python提供多种遍历字典的方式:

遍历键

for key in my_dict:print(key)

遍历键值对

for key, value in my_dict.items():print(key, value)

遍历值

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

七、集合遍历

集合(set)可直接使用for循环遍历:

colors = {'red', 'green', 'blue'}
for color in colors:print(color)

八、列表推导式与生成式

列表推导式

squares = [x*x for x in range(1, 6)]  # [1, 4, 9, 16, 25]

条件筛选

even = [x for x in range(10) if x % 2 == 0]

字典推导式

squares_dict = {x: x**2 for x in range(5)}

九、嵌套循环

嵌套循环可用于二维结构处理:

matrix = [[1, 2], [3, 4], [5, 6]]
for row in matrix:for col in row:print(col, end=' ')

十、循环控制语句

break:提前终止循环

for i in range(10):if i == 5:breakprint(i)

continue:跳过当前迭代

for i in range(5):if i == 2:continueprint(i)

else子句

循环正常结束后执行else,若通过break退出则不执行:

for i in range(5):print(i)
else:print("Loop ended")

十一、实战案例:统计单词频率

text = "python is simple and python is powerful"
word_count = {}
for word in text.split():word_count[word] = word_count.get(word, 0) + 1
print(word_count)

十二、总结

Python循环结构灵活、语法简洁,适用于各种数据处理场景。掌握不同的遍历技巧和循环控制语句,可以让你的程序更高效、更易维护。

建议多多练习不同数据结构的遍历方式,并结合实际问题提升实战能力。

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

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

相关文章

Python-MCPServer开发

Python-MCPServer开发 使用FastMCP开发【SSE模式的MCPServer】&#xff0c;熟悉【McpServer编码过程】【McpServer调试方法】 1-核心知识点 1-熟悉【SSE模式的MCPServer】开发2-熟悉【stdio模式的MCPServer】开发3-熟悉【启动MCPServer】的三种方式 3.1-直接启动:python mcp_s…

高级项目管理

在信息系统项目管理工作中&#xff0c;组织管理者和项目管理者&#xff0c;有时还会面临多项目的管理&#xff0c;或组织级的项目管理、项目的量化管理等课题。 其中&#xff0c;项目集管理、项目组合管理和组织级项目管理&#xff0c;为多项目管理和组织级管理提供有效指导&a…

tarjan缩点+强联通分量

【模板】缩点https://www.luogu.com.cn/problem/P3387 首先我们要理解这道题为什么要用缩点 题目说的是有向图&#xff0c;如果无环的话就可以用DP来解决了 由于可以走重复的点&#xff0c;所以一个环上的点可以看成是一个点&#xff0c;它的点权就等于该环上所有点的点权之…

OSCP:获取全交互式 Windows 反向 Shell

简介 在本文中&#xff0c;我们将探讨获取完全交互式 Windows 反向 Shell 的各种方法&#xff0c;从利用内置工具到采用先进技术以获得更好的控制和功能。 通过 Invoke-ConPtyShell 我获取完全交互式 Windows 反向 Shell 的首选方法是通过 Invoke-ConPtyShell 脚本。当 Wind…

免费超好用的电脑操控局域网内的手机(多台,无线)

使用 第一步 解压QtScrcpy压缩包&#xff0c;并运行QtScrcpy.exe 第二步 2.1 手机开启开发者模式&#xff08;设置>关于本机>版本信息>连点10下“版本号”&#xff09; 2.2 开启 USB调试 和 无线调试&#xff08;设置>开发者选项> USB调试 无线调试&#xf…

Go语言内存管理

本章节&#xff0c;就来学习一下go语言的内存模型&#xff0c;看一下内存的分配&#xff0c;存储都是如何实现的&#xff0c;与此同时&#xff0c;在正式开始今天的主题之前&#xff0c;首先先来学习操作系统基于这一方面的内容&#xff0c;来看看是如何管理内存的吧 本章及节…

【docker】启动临时MongoDB容器、挂载数据卷运行数据库服务,并通过备份文件恢复MongoDB数据库备份数据

‌启动临时 MongoDB 容器、挂载数据卷运行数据库服务&#xff0c;并通过备份文件恢复数据 1.命令分解与功能说明1.1.启动一个临时 MongoDB 容器‌&#xff0c;并进入交互式终端&#xff08;1&#xff09;执行命令&#xff08;2&#xff09;实现功能‌&#xff08;3&#xff09;…

【最新 MCP 战神手册 08】工具使用详解:实现 AI 行动

文章目录 1. 开始啦!2. 第一部分:设计高效且安全的工具3. 第二部分:定义工具蓝图——参数、输出与约束条件4. 第三部分:弥合差距:LLM 兼容性(函数调用)5. 第四部分:实施与测试的最佳实践1. 开始啦! 在前几章中,我们将工具介绍为 AI 模型在 MCP 客户端引导下向 MCP 服…

介绍 IntelliJ IDEA 快捷键操作

IntelliJ IDEA 快捷键操作 1. 编辑与导航2. 查找与替换3. 调试与运行4. 导航与视图5. 重构与生成6. 高级快捷键&#xff08;提高效率&#xff09;注意事项 IntelliJ IDEA 是一款功能强大的集成开发环境&#xff0c;掌握其常用快捷键可以显著提升开发效率。但是有些小伙伴并不清…

Javascript 中作用域的理解?

一、作用域的类型 1. 全局作用域&#xff08;公司大门外&#xff09; 范围&#xff1a;整个 JavaScript 文件变量&#xff1a;像贴在公告栏上的信息&#xff0c;所有人可见例子&#xff1a;const companyName "阿里"; // 全局变量&#xff0c;任何地方都能访问 fu…

Leetcode刷题记录22——滑动窗口最大值

题源&#xff1a;https://leetcode.cn/problems/sliding-window-maximum/description/?envTypestudy-plan-v2&envIdtop-100-liked 题目描述&#xff1a; 思路一&#xff1a; 暴力遍历法&#xff0c;通过一个长度为k的滑动窗口遍历nums&#xff0c;将其中最大的数依次记…

Apache Flink的架构设计与运行流程说明

在大数据领域&#xff0c;实时计算的重要性随着业务需求的爆发式增长愈发凸显。从电商的实时销量监控到金融的高频交易风控&#xff0c;从物联网设备的实时告警到社交平台的热点追踪&#xff0c;企业对“秒级甚至毫秒级”数据处理能力的需求已成为刚需。在众多实时计算框架中&a…

经典算法 最长单调递增子序列

最长单调递增子序列 问题描述 找出由n个数组成的序列的最长单调递增子序列。 示例输入 9 2 1 5 3 6 4 8 9 7示例输出 5示例输入 6 5 6 7 1 2 8示例输出 4c代码(动态规划 O(n^2)) #include<bits/stdc.h>using namespace std;int main() {int n, ans 0;cin >&g…

【语法】C++继承中遇到的问题及解决方法

目录 1.子类构造函数中初始化父类成员 2.子类显式调用父类的析构函数 第一种说法&#xff1a;重定义 反驳&#xff1a; 第二种说法&#xff1a;operator~ 3.因编译器版本过低而出现错误 贴主在学习C的继承时&#xff0c;遇到了很多问题&#xff0c;觉得很变态&#xff0c…

前缀和 后缀和 --- 寻找数组的中心下标

题目链接 寻找数组的中心下标 给你一个整数数组 nums &#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那么左侧数之和视为 0 &#xff0c;因为…

NVIDIA --- 端到端自动驾驶

前言 参加了NVIDIA 高级辅助驾驶开发者实验室的活动&#xff0c;本次活动基于 NVIDIA 汽车行业的端到端解决方案——DRIVE AGX™ 平台&#xff0c;实现高级别智能和安全性的软硬件开发工具和 AV 基础设施。并且NVIDIA自动驾驶实验室推出了一系列自动驾驶算法最新的前沿研究视频…

SQL实战:03之SQL中的递归查询

文章目录 概述SQL 中的递归实现题目一:分析组织层级题解题目二:树节点求解题解步骤一&#xff1a;通过递归查询出每个节点的上级节点和下级节点分布步骤二&#xff1a;分组统计 概述 最近刷题时遇到了一道需要根据组织层级来统计各个层级的一些数据&#xff0c;当时碰到时的第…

MySQL 语法与基础完全指南

MySQL 是最流行的开源关系型数据库管理系统之一&#xff0c;广泛应用于 Web 应用程序开发。本文将全面介绍 MySQL 的基础知识和完整语法结构。 一、MySQL 基础概念 1. 数据库基本术语 数据库(Database): 存储数据的集合 表(Table): 数据以表格形式组织 列(Column): 表中的一…

【Sqlalchemy Model转换成Pydantic Model示例】

【Sqlalchemy Model转换成Pydantic Model示例】 由于Sqlalchemy和Pydantic的模型字段类型可能有差异, 所以需要一个通用的装换类 def sqlalchemy_to_pydantic_v2(sqlalchemy_model, pydantic_model):"""通用函数&#xff0c;将 SQLAlchemy 模型实例转换为 Pyd…

2025年欧洲西南部大停电

2025年4月28日&#xff0c;欧洲西南部出现大规模停电&#xff0c;西班牙、葡萄牙和法国南部均受到影响。有报道指出停电可能与 欧洲电网出现问题有关&#xff0c;但最终原因尚未确定。由于停电&#xff0c;上述地区的交通和通信服务均受到严重影响&#xff0c;交通信号灯停止工…