循环语句 for-in
大家好,这个章节我们来聊聊 Python 中的 for-in 循环。在我们的日常生活中,很多事情都会反复发生,比如每天按时发车的公交车,或者四季交替的变化。程序中的循环语句就像是一个“节律器”,帮助我们反复做一些相同的事情,让代码更加简洁高效。接下来我们就来看一看如何用 for in 来实现这个目标。
简介
Python 并没有提供类似 C 语言中那种传统意义上的 for 循环,而是提供了一种专门处理字符串,元组,列表,字典等可迭代的序列类型数据的增强型 for 循环 for-in。
Python 的 for 循环和我们在其他语言比如 C 中熟悉的 for 循环有点不同。Python 的 for 主要是针对可迭代的对象进行处理,比如字符串、列表、元组、字典等。这种循环被称为增强型 for 循环,或者说是 for in 循环。
for-in 循环语法
for-in 循环会将可迭代对象中的元素依次取出,保存到迭代变量中。
每取出一个变量,便执行一次循环体,在循环体中可以通过引用迭代变量,使用取出的数据。
for 迭代变量 in 对象:
循环体
for in 循环会把可迭代对象中的每个元素依次取出,并将它放到一个迭代变量里,然后执行循环体。每取出一个元素,循环体就会执行一次。简单来说,它是用来遍历一个序列或集合中的每个元素的。比如你有一组数据,for in 就能帮你一个一个地处理它们。
遍历可迭代对象
使用 for-in 循环处理可迭代对象,可以使操作过程变的极其简单。
使用 for in 循环遍历一个可迭代对象(比如字符串、列表、元组等),可以让整个操作过程变得非常简单。接下来我们就通过一些具体的例子来看看如何使用 for in 循环。
遍历字符串
for-in 循环会将字符串中的每个字符依次取出,放入迭代变量中。
for 变量 in 字符串:
pass
for in 循环可以用来遍历字符串中的每个字符。在每一次循环中,字符串中的一个字符会被取出来,存到迭代变量里。
示例: 输出前面示例中每个字符对应的 ASCII 码值。
s = "Hello Hogworts!"
for c in s:
print(f"字符【 {c} 】的ASCII码为:【 {ord(c)} 】")
假设我们有一个字符串 "Hello Hogworts!",我们想输出每个字符对应的 ASCII 码。代码就像这样。每次循环,c 会依次取出字符串中的一个字符,我们用 ord 函数把它转换成 ASCII 码,然后输出。
遍历元组
for-in 循环会将元组中的每个元素依次取出,放入迭代变量中。
for 变量 in 元组:
pass
元组也是一个可迭代对象,for in 循环同样可以遍历元组中的每个元素。
示例: 输出元组中每个数字的立方值
t = (1,2,3,4,5)
for n in t:
print(f"数字【 {n} 】的立方值为:【 {n**3} 】")
假设我们有一个元组,里面包含了一系列的正整数,我们想计算每个数字的立方值并输出,代码是这样的。每次循环,n 就是元组中的一个数字,我们在循环体内进行计算并输出结果。
遍历列表
for-in 循环会将列表中的每个元素依次取出,放入迭代变量中。
for 变量 in 列表:
pass
for in 循环也可以用来遍历列表中的每个元素,列表和元组类似,都是有序的集合类型。
示例: 将列表中所有的请求方式转换为大写输出
request_methods = ["get", "post", "put", "delete", "patch", "header", "options", 'trace']
for method in request_methods:
print(f"请求方式【 {method} 】转换为大写后:【 {method.upper()} 】")
假设我们有一个请求方法的列表,包含了常见的请求方法比如 get, post, put, delete, patch 这些。我们想把每个请求方法都转换为大写,代码会是这样。每次循环,method 就是列表中的一个请求方式,我们调用 upper 方法将其转换为大写并输出。
遍历字典
字典是一个比较特殊的数据类型,由 key-value 组成,在使用 for-in 遍历字典时,默认遍历的是字典的所有 key。
如果需要遍历字典中的 value 或以 key-value 形式遍历,需要配合使用字典中对应的方法实现。
字典是一个特殊的数据类型,它由键值对 key value 组成。这里大家要注意,在使用 for-in 遍历字典时,默认遍历的是字典的所有 key。如果需要单独遍历 value 或者 key 的话,就需要结合字典中提供的方法来实现了。下面我们来看看具体用法。
字典的默认遍历
for-in 循环在字典中依次取出每个元素的 key,放入迭代变量中。
for 变量 in 字典:
pass
刚才也提到了,当我们用 for in 循环遍历字典时,默认是遍历字典的所有键也就是 key。
示例:
request_methods = {
"get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
"post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
"put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
"delete": "用于删除服务器上的资源。"
}
for method in request_methods:
print(method)
假设我们有一个字典,记录了不同请求方法的描述信息。这里,method 就是字典中的键。如果你需要处理键对应的值,可以在循环体中访问。
遍历字典中的所有 key
使用字典的 keys() 方法配合 for-in 循环可以遍历字典的所有 key,但一般不会这么操作。
for 变量 in 字典.keys():
pass
有时候,我们可能只想获取字典的所有 key,这时可以使用字典的 keys 方法。语法是 for 变量 in 字典点keys。下面来看一个例子。
示例:
request_methods = {
"get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
"post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
"put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
"delete": "用于删除服务器上的资源。"
}
for method in request_methods.keys():
print(method)
这里我们还是用 request_methods 这个字典。当使用 for 去遍历 request_methods点keys 的时候,method 这个迭代变脸会是字典中的每个键。
遍历字典中的所有 value
使用字典的 values() 方法配合 for-in 循环可以遍历字典的所有 value。需要注意的是,虽然可以取值,但对字典而言,这种操作也很少使用。
for 变量 in 字典.values():
pass
如果你只对字典中的值感兴趣,可以使用 values 方法来遍历所有的值。格式就是 for 变量 in 字典点values。下面还是来看一个例子。
示例:
request_methods = {
"get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
"post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
"put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
"delete": "用于删除服务器上的资源。"
}
for method in request_methods.values():
print(method)
这里我们还是用 request_methods 这个字典。当使用 for 去遍历 request_methods点values 的时候,method 就是字典中的每个 value。
遍历字典中的所有 key-value
字典中的一个完成的元素是以 key-value 形式体现的,如果要遍历字典中的所有元素,可以使用字典的 items() 方法配合 for-in 循环可以遍历字典的所有 key-vakue。
items() 方法取出的字典元素会以元组形式保存到迭代变量中,适当的场景下,可以使用解包操作,直接将元素中的 key-value 保存到对应的变量中。
for 变量 in 字典.items():
pass
# 或
for 变量1, 变量2 in 字典.items():
pass
如果你想同时遍历字典的 key 和 value,可以使用 items 方法。items 会返回一个包含 key value 对的元组。具体语法是 for 变量 in 字典点items。你还可以使用解包操作直接获取 key 和 value,语法是 for 变量1, 变量2 in 字典点items。下面再来看一个例子。
示例:
request_methods = {
"get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
"post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
"put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
"delete": "用于删除服务器上的资源。"
}
for item in request_methods.items():
print(f"请求方式【 {item[0]} 】的作用为:【 {item[1]} 】")
比如这里直接用 item 当作迭代变量,那它的值就是一个元组,里面包含了 key 和 value。如果在循环体中想要分别拿到 key 或者 value 的话,就可以通过访问元组的方式来操作。
配合解包操作,更简单的实现
request_methods = {
"get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
"post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
"put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
"delete": "用于删除服务器上的资源。"
}
for key, value in request_methods.items():
print(f"请求方式【 {key} 】的作用为:【 {value} 】")
或者,我们也可以通过解包操作,直接把 key 和 value 分别赋给 key 和 value 变量,便于进一步使用。
总结
for-in循环语法- 遍历可迭代对象
下面我们来总结一下。这个章节我们学习了 Python 中的 for in 循环,它帮助我们轻松遍历字符串、元组、列表、字典等可迭代对象。for in 循环的强大之处就在于它简化了遍历过程,让我们可以更专注于业务逻辑,而不必关心如何管理索引或者迭代。希望大家在实际编程中,能够灵活运用这些知识,提高编程效率!