函数用于在遍历序列时同时获取索引和值,其基本用法为forenumerateindex,itemin(enumerateiterable),默认索引起始为0;通过参数可指定起始值,如start=1常用于生成行号;它适用于列表、元组、字符串等可迭代对象,广泛应用于数据处理、字典构建、日志报错等场景,相比start更简洁安全,提升了代码可读性和维护性。range(len())
<img src="https://img.php.cn/upload/article/001/431/639/175792572182054.png" alt="python中的函数怎么用_python enumerate()函数的用法与技巧">enumerate
Python中的ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
ic”。
解决方案
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
ition:relative; padding:0px; margin:0px;">
(索引, 值)
看个简单的例子你就明白了:
ition:relative; padding:0px; margin:0px;">
my_list = ['apple', 'banana', 'cherry'] # 最直接的用法 forindex,itemin(my_lenumerateist): print(f"索引 {index}: {item}") # 输出: # 索引 0: apple # 索引 1: banana # 索引 2: cherry
它本质上就是把你的序列包装了一下,每次迭代的时候,除了给你元素本身,还附赠了一个从0开始的计数器。我个人觉得,这比我们以前那种“先用ition:relative; padding:0px; margin:0px;">
range(len(my_list))
ition:relative; padding:0px; margin:0px;">
my_list[index]
为什么选择iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">
enumerate()
iv> iv>
iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>而不是iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">
range(len())
iv> iv>
iv>iv> iv> iv>?
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate()
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
range(len())
说实话,刚接触Python的时候,很多人(包括我自己在内)在需要索引和值的时候,第一反应可能都是ition:relative; padding:0px; margin:0px;">
for i in range(len(some_list)): item = some_list[i]
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate()
ition:relative; padding:0px; margin:0px;">
# 传统方式,需要两步操作 data = ['A', 'B', 'C'] foriin range(len(data)):item = data[i] print(f"传统方式 - 索引 {i}: {item}") #方式,一步到位 forenumerateindex,itemin(data): prenumerateint(f"方式 - 索引 {enumerateindex}: {item}")
很明显,ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
range(len())
ition:relative; padding:0px; margin:0px;">
i
ition:relative; padding:0px; margin:0px;">
data[i]
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">
enumerate()
iv> iv>
iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>函数有哪些高级用法和参数?
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate()
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate()
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
start
默认情况下,ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
start
ition:relative; padding:0px; margin:0px;">
tasks = ['写报告', '开会', '回复邮件'] # 默认从0开始 print("--- 默认从0开始 ---") fori, taskin(tasks): prenumerateint(f"任务 {i}: {task}") # 从1开始计数,更像我们日常的序号 print("n--- 从1开始计数 ---") fori, taskin(tasks,enumerate=1): prstartint(f"任务 {i}: {task}") # 输出: # --- 默认从0开始 --- # 任务 0: 写报告 # 任务 1: 开会 # 任务 2: 回复邮件 # # --- 从1开始计数 --- # 任务 1: 写报告 # 任务 2: 开会 # 任务 3: 回复邮件
这个ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
start
ition:relative; padding:0px; margin:0px;">
index + 1
img src="https://img.php.cn/upload/ai_manual/001/503/042/68b6d2df4c212213.png" alt="python中的函数怎么用_python enumerate()函数的用法与技巧"> enumerate
帮你写出让领导满意的精美文稿
img src="https://phps.yycxw.com/static/images/card_xiazai.png" alt="python中的函数怎么用_python enumerate()函数的用法与技巧">102 enumerateimg src="https://phps.yycxw.com/static/images/cardxiayige-3.png" alt="python中的函数怎么用_python enumerate()函数的用法与技巧"> iv> enumerate
此外,ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
ition:relative; padding:0px; margin:0px;">
my_string = "Python" fori, charin(my_strenumerateing): print(f"字符 '{char}' 在位置 {i}") my_tuple = ('a', 'b', 'c') fori, valin(my_tuple): prenumerateint(f"元组值 '{val}' 在索引 {i}")
在实际项目中,iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">iv style="position:relative; padding:0px; margin:0px;">
enumerate()
iv> iv>
iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>iv> iv> iv>函数有哪些常见应用场景?
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate()
ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate()
一个很常见的场景是数据处理和转换。假设你有一个列表,需要根据元素的索引来做一些条件判断或者修改:
ition:relative; padding:0px; margin:0px;">
scores = [85, 92, 78, 95, 60, 88] updated_scores = [] fori, scorein(scores):enumerateif score < 70: # 给不及格的同学加10分,但不超过90 updated_scores.append(min(score + 10, 90)) else: updated_scores.append(score) print(f"原始分数: {scores}") print(f"更新后分数: {updated_scores}") # 输出: # 原始分数: [85, 92, 78, 95, 60, 88] # 更新后分数: [85, 92, 78, 95, 70, 88]
这里,我们通过ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
再比如,构建字典。如果你有一个键列表和一个值列表,想把它们配对成字典:
ition:relative; padding:0px; margin:0px;">
keys = ['name', 'age', 'city'] values = ['Alice', 30, 'New York'] # 如果两个列表长度相同,可以用zip,但如果只有values列表,而keys需要根据索引生成呢? # 或者我们希望根据索引来动态生成键 data_dict = {} fori, valin(values): # 稍微复杂一点的键生成逻辑,如果键列表不够长,就用通用键名 data_denumerateict[keys[i]ifi< len(keys) else f"unknown_key_{i}"] = val # 简单的场景,假设keys和values长度一致: # data_dict[keys[i]] = val print(f"生成的字典: {data_dict}") # 输出: # 生成的字典: {'name': 'Alice', 'age': 30, 'city': 'New York'}
这个例子稍微复杂了一点,但它展示了ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
另一个非常实用的场景是日志记录或错误报告。当你处理一个文件或者一个批次的数据时,如果出现问题,能够报告是“第几行”或者“第几个数据”出了错,这对于调试来说简直是金子般的提示。
ition:relative; padding:0px; margin:0px;">
lines = [ "数据1: 正常", "数据2: 错误格式", "数据3: 正常", "数据4: 另一错误" ] for line_num, line_contentin(lenumerateines,=1):startif "错误"in line_content: print(f"⚠️ 在第 {line_num} 行发现问题: {line_content}") # 输出: # ⚠️ 在第 2 行发现问题: 数据2: 错误格式 # ⚠️ 在第 4 行发现问题: 数据4: 另一错误
通过ition:relative; padding:0px; margin:0px;">
(...,enumerate=1)start
总的来说,ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">ition:relative; padding:0px; margin:0px;">
enumerate
isplay: inline-flex;"> 相关标签: isplay:flex;"> ick="hits_log(2,'www',this);" href-data="/zt/15730.html" target="_blank">python ick="hits_log(2,'www',this);" href-data="/zt/16186.html" target="_blank">app ick="hits_log(2,'www',this);" href-data="/zt/19200.html" target="_blank">apple ick="hits_log(2,'www',this);" href-data="/zt/51951.html" target="_blank">可迭代对象 ick="hits_log(2,'www',this);" href-data="/zt/55554.html" target="_blank">代码可读性 ick="hits_log(2,'www',this);" href-data="/zt/92702.html" target="_blank">为什么 ick="hits_log(2,'www',this);" href-data="/search?word=Python" target="_blank">Python ick="hits_log(2,'www',this);" href-data="/search?word=for" target="_blank">for ick="hits_log(2,'www',this);" href-data="/search?word=字符串" target="_blank">字符串 ick="hits_log(2,'www',this);" href-data="/search?word=循环" target="_blank">循环 ick="hits_log(2,'www',this);" href-data="/search?word=泛型" target="_blank">泛型 ick="hits_log(2,'www',this);" href-data="/search?word=len" target="_blank">len ick="hits_log(2,'www',this);" href-data="/search?word=对象" target="_blank">对象 ick="hits_log(2,'www',this);" href-data="/search?word=低代码" target="_blank">低代码
大家都在看:
its_log(2,'www',this);" href-data="/zt/15730.html" target="_blank">python ick="hits_log(2,'www',this);" href-data="/zt/16186.html" target="_blank">app ick="hits_log(2,'www',this);" href-data="/zt/19200.html" target="_blank">apple ick="hits_log(2,'www',this);" href-data="/zt/51951.html" target="_blank">可迭代对象 ick="hits_log(2,'www',this);" href-data="/zt/55554.html" target="_blank">代码可读性 ick="hits_log(2,'www',this);" href-data="/zt/92702.html" target="_blank">为什么 ick="hits_log(2,'www',this);" href-data="/search?word=Python" target="_blank">Python ick="hits_log(2,'www',this);" href-data="/search?word=for" target="_blank">for ick="hits_log(2,'www',this);" href-data="/search?word=字符串" target="_blank">字符串 ick="hits_log(2,'www',this);" href-data="/search?word=循环" target="_blank">循环 ick="hits_log(2,'www',this);" href-data="/search?word=泛型" target="_blank">泛型 ick="hits_log(2,'www',this);" href-data="/search?word=len" target="_blank">len ick="hits_log(2,'www',this);" href-data="/search?word=对象" target="_blank">对象 ick="hits_log(2,'www',this);" href-data="/search?word=低代码" target="_blank">低代码