Python for循环几种常用场景

本文详细介绍Python中for循环的使用方法及常见应用场景,包括遍历列表、字符串、字典及对象列表等,同时介绍如何利用enumerate()函数高效遍历序列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述

  • 可迭代的对象可以使用for循环进行遍历,例如:字符串、列表、字典、元组和集合
  • for循环里面有一个隐藏的机制,就是自动执行index+1,直到遍历完整个序列
  • 类似于JAVA的for (Object o : list){}

二、用法

# for循环中,obj 为变量,用来接收序列中的元素
list=['Hello','World','code_space']
for obj in list:
    print(obj)

三、常用场景

1)遍历切片

将原本的列表进行切片,再for循环遍历:

demo_str = 'HelloWorld code_space'
# 取demo_str的下标为5到9的字符形成切片,对切片进行遍历
print("切片-->"+demo_str[5:10])
for obj in demo_str[5:10]:
    print(obj)

在这里插入图片描述

2)遍历字典

(1)for循环遍历字典默认是遍历字典的所有key值

dict_demo = {"name": "code_space", "size": "20cm", "性别": "男"}
# 默认遍历字典中的key值
print("开始打印key-->")
for i in dict_demo:
    print(i)

在这里插入图片描述
(2)遍历取value

  • 第一种,直接遍历字典中的key值,打印出对应的value值
dict_demo = {"name": "code_space", "size": "20cm", "性别": "男"}
# 直接遍历字典中的key值,打印出对应的value值
print("开始打印value-->")
for j in dict_demo:
    print(dict_demo[j])
  • 第二种,直接遍历字典中的value值
dict_demo = {"name": "code_space", "size": "20cm", "性别": "男"}
# 直接遍历字典中的value值
for m in dict.values():
    print(m)

在这里插入图片描述
(3)使用for循环取字典的键值对

dict_demo = {"name": "code_space", "size": "20cm", "性别": "男"}
# 取字典中的键值对
print("开始打印键值对-->")
for h in dict_demo.items():
    print(h)

for key, value in dict_demo.items():
    print('{} 的值为 {}'.format(key, value))

在这里插入图片描述

3)遍历对象列表

  • ※ 这个情况是最常用的,通常我们在业务开发中,要从数据库查出对象列表,例如某个商品的订单列表,我们要for循环对这个列表进行遍历操作。其实遍历过程跟上面取字典值类似。
demo_obj_list = [
    {"name": "code_space_1", "size": "20cm"},
    {"name": "code_space_2", "size": "21cm"}
]
print("开始打印对象-->")
for obj in demo_obj_list:
    print(obj["name"] + ":" + obj["size"])

在这里插入图片描述

4)for+enumerate()遍历序列的索引下标和序列对象

  • 平时我们用for循环要拿每次循环的下标index,要定义个对象,比如:
index = 0
for x in range(5):
    print("第" + str(x + 1) + "个数据-->" + str(x))
    index = index + 1

在这里插入图片描述

  • enumerate() 函数可以将一个可遍历的序列组合为一个索引序列,我们看下效果:
for index, y in enumerate(range(5)):
    print("第" + str(index + 1) + "个数据-->" + str(y))

可以看到我们不用去管理序列的遍历下标,直接可以取,节省代码并且提升效率。

四、其它拓展

  • for+join()实现快速遍历打印、拼接、处理序列对象。
demo_list = ["a", "b", "c", "d", "e"]
demo_obj_list = [
    {"name": "code_space_1", "size": "20cm"},
    {"name": "code_space_2", "size": "21cm"}
]
print("开始打印加逗号的效果-->")
print(','.join(n for n in demo_list))
print(','.join(m["name"] for m in demo_obj_list))
print(','.join(m["size"] for m in demo_obj_list))

在这里插入图片描述

  • 关于range()函数的一些常用开发场景
# range()
# 第一种:一个参数  从0开始 顾头不顾尾
# for i in range(10):
#     print(i)
# 第二种:两个参数  自定义起始位置 顾头不顾尾
# for i in range(4, 10):
#     print(i)
# 第三种:三个参数  第三个数字用来控制等差值
for i in range(2, 100, 10):
    print(i)

for循环的使用很简单,重点在于掌握节省代码、
优化代码的细节,从小细节做起培养习惯,形成代码洁癖。
关注我,坚持每日积累一个技巧,长期坚持,我们将会不断进步。

### Python 中的不同循环结构及其用法 #### For 循环 For 循环主要用于遍历序列(列表、元组、字符串等),逐个获取其中的元素并执行相应的操作。这种循环非常适合处理已知数量迭代的情况。 ```python fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) ``` 上述代码会依次打印 `fruits` 列表里的每一个项目[^1]。 对于更复杂的场景,比如嵌套多个 for 语句来创建组合或过滤数据,则可以通过如下方式实现: ```python pairs = [(x, y) for x in range(3) for y in range(3)] print(pairs) filtered_pairs = [ (x, y) for x in range(-3, 4) for y in range(-3, 4) if abs(x - y) >= 2 and x * y != 0 ] print(filtered_pairs) ``` 这段程序先展示了如何通过两个连续的 for 表达式生成所有可能的坐标对;接着,在第二个例子中加入了条件判断以筛选特定关系下的点集[^3]。 #### While 循环 While 循环会在给定条件下重复运行一段代码直到该条件不再满足为止。这使得 while 非常适合用来控制未知次数的操作流程。 ```python count = 0 while count < 5: print(count) count += 1 ``` 此段脚本将持续增加计数器变量 `count` 的值直至其达到预设界限,并在此过程中不断输出当前数值。 #### 解决循环引用问题的方法 当涉及到模块间的相互依赖时可能会遇到循环导入的问题。一种常见的解决方案是在文件顶部仅引入必要的类型提示声明而推迟实际对象实例化的时间点,从而避免直接加载整个模块造成死锁现象。 ```python from typing import TYPE_CHECKING if TYPE_CHECKING: from some_module import ClassA class ClassB: def do_something(self, obj: 'ClassA'): ... ``` 这里展示了一个简单的模式,即利用 `TYPE_CHECKING` 变量配合静态分析工具完成跨文件间类定义的安全互访而不引发运行时错误[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

code_space

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值