Skip to content

遍历

Python 提供了多种方式来遍历字符串、列表、元组和字典,每种方式都有其独特的优势和应用场景。以下将从多个角度进行详细讲解。

使用 for 循环

遍历字符串

python
my_string = "Hello, World!"

# 遍历字符串中的每个字符
for char in my_string:
    print(char)
    
# 输出:
# H
# e
# l
# l
# o
# ,
#  
# W
# o
# r
# l
# d
# !

遍历列表

python
my_list = ["apple", "banana", "cherry"]

# 遍历列表中的每个元素
for item in my_list:
    print(item)

# 输出:
# apple
# banana
# cherry

遍历字典

python
my_dict = {"name": "Alice", "age": 30, "city": "Beijing"}

# 遍历字典中的每个键值对
for key, value in my_dict.items():
    print(f"Key: {key}, Value: {value}")

# 输出:
# Key: name, Value: Alice
# Key: age, Value: 30
# Key: city, Value: Beijing

使用 enumerate() 函数

enumerate() 函数可以将可迭代对象中的元素与其索引打包成一个枚举对象,便于同时访问元素和索引。

python
my_list = ["apple", "banana", "cherry"]

# 遍历列表,同时获取元素和索引
for index, item in enumerate(my_list):
    print(f"Index: {index}, Item: {item}")

# 输出:
# Index: 0, Item: apple
# Index: 1, Item: banana
# Index: 2, Item: cherry

使用 range() 和索引

可以使用 range() 函数和索引来遍历列表、元组和字符串。

python
my_list = ["apple", "banana", "cherry"]

# 遍历列表,使用索引访问元素
for i in range(len(my_list)):
    print(f"Index: {i}, Item: {my_list[i]}")

# 输出:
# Index: 0, Item: apple
# Index: 1, Item: banana
# Index: 2, Item: cherry

注意: 对于字符串,可以使用 range(len(my_string)) 遍历字符串中的每个字符。

使用 zip() 函数

zip() 函数可以将多个可迭代对象打包成一个元组,每个元组包含来自每个可迭代对象的对应元素。

python
names = ["Alice", "Bob", "Charlie"]
ages = [30, 25, 28]

# 遍历两个列表,同时获取对应元素
for name, age in zip(names, ages):
    print(f"Name: {name}, Age: {age}")

# 输出:
# Name: Alice, Age: 30
# Name: Bob, Age: 25
# Name: Charlie, Age: 28

使用列表推导

列表推导可以用来创建新的列表,同时可以用于遍历和修改列表中的元素。

python
my_list = ["apple", "banana", "cherry"]

# 将列表中的每个元素转换为大写字母
uppercase_list = [item.upper() for item in my_list]
print(uppercase_list)

# 输出:
# ['APPLE', 'BANANA', 'CHERRY']

总结

Python 提供了多种方式来遍历不同数据类型,每种方式都有其优缺点。选择合适的遍历方式取决于您的具体需求,例如:

  • for 循环: 是最常用的方式,适用于各种数据类型。
  • enumerate() 函数: 适用于需要同时获取元素和索引的场景。
  • range() 和索引: 适用于需要根据索引访问元素的场景。
  • 列表推导: 适用于需要遍历和修改元素,并创建新列表的场景。
  • zip() 函数: 适用于需要同时遍历多个可迭代对象的场景。

熟练掌握各种遍历方式,可以使您更灵活地处理各种数据结构,并提高代码效率。

Released under the MIT License.