enumerate() 可同时获取可迭代对象的索引和值,提升代码可读性、安全性和通用性,支持列表、元组、字符串、字典、集合、文件及生成器等,并可通过 start 参数自定义起始索引。

enumerate()
当你需要在一个循环中不仅访问集合里的元素,还想知道这个元素是第几个(它的位置),
enumerate()
(索引, 值)
举个最简单的例子,假设你有一个水果列表,想打印出每个水果及其在列表中的序号:
fruits = ["apple", "banana", "cherry", "date"]
# 使用 enumerate()
for index, fruit in enumerate(fruits):
print(f"Index {index}: {fruit}")
# 输出:
# Index 0: apple
# Index 1: banana
# Index 2: cherry
# Index 3: date你看,代码是不是比
for index in range(len(fruits)): print(f"Index {index}: {fruits[index]}")IndexError
立即学习“Python免费学习笔记(深入)”;
这其实是个很经典的 Pythonic 问题。我个人觉得,
enumerate()
首先,代码可读性。
for index, item in enumerate(my_list):
for i in range(len(my_list)): item = my_list[i]
range(len())
enumerate()
其次,安全性与健壮性。当你使用
range(len(my_list))
my_list
len(my_list)
range(0)
len()
len()
enumerate()
最后,通用性。
enumerate()
range(len())
len()
enumerate()
当然可以!
enumerate()
enumerate()
start
你只需要在调用
enumerate()
start
items = ["first", "second", "third"]
# 默认从 0 开始
print("--- 默认从 0 开始 ---")
for i, item in enumerate(items):
print(f"Item {i}: {item}")
# 输出:
# Item 0: first
# Item 1: second
# Item 2: third
# 从 1 开始计数
print("\n--- 从 1 开始计数 ---")
for i, item in enumerate(items, start=1):
print(f"Item {i}: {item}")
# 输出:
# Item 1: first
# Item 2: second
# Item 3: third这个
start
index + 1
enumerate()
enumerate()
for
我们来看几个常见的例子:
字符串 (String): 字符串本身就是字符的序列。
word = "Python"
for i, char in enumerate(word):
print(f"Character at position {i}: {char}")
# 输出:
# Character at position 0: P
# Character at position 1: y
# ...元组 (Tuple): 元组和列表类似,都是有序序列。
my_tuple = ("apple", "banana", "orange")
for i, fruit in enumerate(my_tuple):
print(f"Fruit {i}: {fruit}")字典 (Dictionary): 当你直接迭代字典时,默认会迭代它的键 (keys)。
my_dict = {"name": "Alice", "age": 30, "city": "New York"}
for i, key in enumerate(my_dict):
print(f"Key {i}: {key} -> Value: {my_dict[key]}")
# 输出:
# Key 0: name -> Value: Alice
# Key 1: age -> Value: 30
# Key 2: city -> Value: New York如果你想同时迭代键和值,通常会用
my_dict.items()
for i, (key, value) in enumerate(my_dict.items()):
print(f"Item {i}: {key}={value}")集合 (Set): 集合是无序的,所以
enumerate()
enumerate()
my_set = {"red", "green", "blue"}
for i, color in enumerate(my_set):
print(f"Color {i}: {color}")
# 输出可能像这样(顺序不定):
# Color 0: green
# Color 1: blue
# Color 2: red文件对象 (File Object): 在读取文件时,
enumerate()
# 假设有一个名为 'example.txt' 的文件
# 内容:
# Line 1 content
# Line 2 content
# Line 3 content
# with open('example.txt', 'r') as f:
# for line_num, line in enumerate(f, start=1):
# print(f"Line {line_num}: {line.strip()}") # .strip() 去除行尾换行符
# 输出:
# Line 1: Line 1 content
# Line 2: Line 2 content
# Line 3: Line 3 content(这里我注释掉了文件操作代码,因为没有实际文件,但逻辑是这样。)
生成器 (Generator) 或其他自定义迭代器: 任何实现了迭代器协议的对象,
enumerate()
所以,
enumerate()
以上就是python中enumerate()有什么用_Python enumerate()函数用法与技巧的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号