Skip to content

循环语句 for in

循环语句 for-in

简介

Python 并没有提供类似 C 语言中那种传统意义上的 for 循环,而是提供了一种专门处理字符串,元组,列表,字典等可迭代的序列类型数据的增强型 for 循环 for-in

for-in 循环语法

for 迭代变量 in 对象:
    循环体

for-in 循环会将可迭代对象中的元素依次取出,保存到迭代变量中。

每取出一个变量,便执行一次循环体,在循环体中可以通过引用迭代变量,使用取出的数据。

遍历可迭代对象

使用for-in循环处理可迭代对象,可以使操作过程变的极其简单。

遍历字符串

for-in 循环会将字符串中的每个字符依次取出,放入迭代变量中。

格式:

for 变量 in 字符串:
    pass

示例: 输出前面示例中每个字符对应的ASCII码值。

s = "Hello Hogworts!"
for c in s:
    print(f"字符【 {c} 】的ASCII码为:【 {ord(c)} 】")

遍历元组

for-in 循环会将元组中的每个元素依次取出,放入迭代变量中。

格式:

for 变量 in 元组:
    pass

示例: 输出元组中每个数字的立方值

t = (1,2,3,4,5)
for n in t:
    print(f"数字【 {n} 】的立方值为:【 {n**3} 】")

遍历列表

for-in 循环会将列表中的每个元素依次取出,放入迭代变量中。

格式:

for 变量 in 列表:
    pass

示例: 将列表中所有的请求方式转换为大写输出

requestMethods = ["get", "post", "put", "delete", "patch", "header", "options", 'trace']
for method in requestMethods:
    print(f"请求方式【 {method} 】转换为大写后:【 {method.upper()} 】")

遍历字典

字典是一个比较特殊的数据类型,由 key-value 组成,在使用 for-in 遍历字典时,默认遍历的是字典的所有 key

如果需要遍历字典中的 value 或以 key-value 形式遍历,需要配合使用字典中对应的方法实现。

字典的默认遍历

for-in 循环在字典中依次取出每个元素的 key,放入迭代变量中。

格式:

for 变量 in 字典:
    pass

示例:

requestMethods = {
                    "get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
                    "post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
                    "put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
                    "delete": "用于删除服务器上的资源。"
                }
for method in requestMethods:
    print(method)
遍历字典中的所有 key

使用字典的 keys() 方法配合 for-in 循环可以遍历字典的所有 key,但一般不会这么操作。

格式:

for 变量 in 字典.keys():
    pass

示例:

requestMethods = {
                    "get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
                    "post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
                    "put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
                    "delete": "用于删除服务器上的资源。"
                }
for method in requestMethods.keys():
    print(method)
遍历字典中的所有 value

使用字典的 values() 方法配合 for-in 循环可以遍历字典的所有 value。需要注意的是,虽然可以取值,但对字典而言,这种操作也很少使用。

格式:

for 变量 in 字典.values():
    pass

示例:

requestMethods = {
                    "get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
                    "post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
                    "put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
                    "delete": "用于删除服务器上的资源。"
                }
for method in requestMethods.values():
    print(method)
遍历字典中的所有 key-value

字典中的一个完成的元素是以 key-value 形式体现的,如果要遍历字典中的所有元素,可以使用字典的 items() 方法配合 for-in 循环可以遍历字典的所有 key-vakue

items() 方法取出的字典元素会以元组形式保存到迭代变量中,适当的场景下,可以使用解包操作,直接将元素中的 key-value 保存到对应的变量中。

格式:

for 变量 in 字典.items():
    pass

# 或

for 变量1, 变量2 in 字典.items():
    pass

示例:

requestMethods = {
                    "get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
                    "post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
                    "put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
                    "delete": "用于删除服务器上的资源。"
                }
for item in requestMethods.items():
    print(f"请求方式【 {item[0]} 】的作用为:【 {item[1]} 】")

配合解包操作,更简单的实现

requestMethods = {
                    "get": "用于获取服务器上的资源,通过在URL中传递参数来发送请求。",
                    "post": "用于向服务器提交数据,一般用于创建新的资源或进行修改操作。",
                    "put": "用于更新服务器上的资源,一般用于修改已存在的资源的全部内容。",
                    "delete": "用于删除服务器上的资源。"
                }
for key, value in requestMethods.items():
    print(f"请求方式【 {key} 】的作用为:【 {value} 】")