前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >吃透python3中的for遍历(迭代/循环)的玩法

吃透python3中的for遍历(迭代/循环)的玩法

原创
作者头像
手撕代码八百里
发布2024-01-04 23:35:09
2.2K030
代码可运行
发布2024-01-04 23:35:09
举报
文章被收录于专栏:猿计划
运行总次数:30
代码可运行

前言

每一种语言都存在多种遍历,或者说迭代,或者说循环等各种各样的方式,Python也不例外,下面我以python3.x的语法来带你了解python中的遍历方式。在Python中,遍历(或迭代)是一种常见的操作,用于逐一访问序列(如列表、元组)、字典、文件等中的元素。

为了方便实操,你也可以把鼠标放到代码块上,可以点击运行就可以看到效果。

使用for循环

1、遍历数组

任何语言几乎都存在for循环,只是每个语言使用for的代码的方式略有不同,例如有一串数字数组:1,2,3,4,5,对于初学者来说可能立马写了for(int i;i<5;i++)的代码块,

代码语言:python
代码运行次数:9
复制
numbers = [1, 2, 3, 4, 5]
for number in numbers:
    print(number)

运行结果如下:

2、遍历字符串

还有很多时候需要遍历一个字符串,总字符串中找到子串或者找到自己需要的字符。这个时候就需要使用到遍历字符串的知识点了,例如str = "我叫郑晖,2024年我在腾讯云开发者社区学Python"

代码语言:python
代码运行次数:1
复制
str = "我叫郑晖,2024年我在腾讯云开发者社区学Python"
for char in str:
    print(char)

效果:

3、使用for循环遍历字典

先来回顾下什么是字典:

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

ddd = {key1 : value1, key2 : value2 }

例如存储年龄、姓名、班级:

代码语言:python
代码运行次数:3
复制
tinydict = {'Name': '郑晖', 'Age': 18, 'Class': '腾讯云社区'}
print(tinydict)

效果如下:

如果你想遍历出来该如何做呢:

只遍历键:

代码语言:python
代码运行次数:10
复制
tinydict = {'Name': '郑晖', 'Age': 18, 'Class': '腾讯云社区'}
for key in tinydict:
    print(key)

只遍历值:

代码语言:python
代码运行次数:4
复制
tinydict = {'Name': '郑晖', 'Age': 18, 'Class': '腾讯云社区'}
for val in tinydict.values():
    print(val)

同时遍历值和键:

代码语言:python
代码运行次数:1
复制
tinydict = {'Name': '郑晖', 'Age': 18, 'Class': '腾讯云社区'}
for k,v in tinydict.items():
    print(k,v)

for的其他玩法

列表推导式的玩法

列表推导式是使用for循环快速创建列表的一种方法,它更加简洁且易于阅读。

我常用在创建数据的时候:

代码语言:python
代码运行次数:1
复制
squares = [x**2 for x in range(10)]
print(squares)

enumerate的玩法

enumerate()在迭代时提供了一个计数器,可以用来获取元素的索引和值。

如果你想获取索引和值,这个可能非常适合你的需求:

代码语言:python
代码运行次数:1
复制
for index, value in enumerate(['腾', '讯', '云']):
    print(index, value)

并行迭代的玩法

使用zip()函数可以并行迭代两个或更多的序列。

代码语言:python
代码运行次数:0
复制
names = ['郑辉', '小明', '小红']
ages = [18, 24, 19]
for name, age in zip(names, ages):
    print(name, age)

字典迭代的玩法

这个上面已经说了,这里来个简单直白的:

代码语言:python
代码运行次数:0
复制
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key, value in my_dict.items():
    print(key, value)

嵌套循环(多维)的遍历玩法

通常用在多维数据的遍历

代码语言:python
代码运行次数:0
复制
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix:
    for item in row:
        print(item,end=",")
    print("\n")

这里为了方便演示打印的结果,我改变了print()的结束字符,默认会回车换行。

循环与else子句共用的有趣玩法

for循环可以有一个else部分,当循环正常结束时执行(即没有被break语句中断)。

非常有意思,例如你想从一个数组中找一个数,但是没找到,就可以用这个方式:

代码语言:python
代码运行次数:0
复制
for num in [1, 2, 3, 4, 5]:
    if num == 0:
        break
else:
    print("没有找到0")

还有比较重要和高级的迭代器的玩法

结合next()函数和迭代器进行更细粒度的迭代控制。

代码语言:python
代码运行次数:0
复制
iterable = iter([1, 2, 3])
for item in iterable:
    print(item)
    if item == 2:
        next_item = next(iterable, None)
        print("msg:", next_item)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 使用for循环
    • 1、遍历数组
      • 2、遍历字符串
        • 3、使用for循环遍历字典
        • for的其他玩法
          • 列表推导式的玩法
            • enumerate的玩法
              • 并行迭代的玩法
                • 字典迭代的玩法
                  • 嵌套循环(多维)的遍历玩法
                    • 循环与else子句共用的有趣玩法
                      • 还有比较重要和高级的迭代器的玩法
                      相关产品与服务
                      云开发 CloudBase
                      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档