最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中enumerate函數(shù)詳解之遍歷中的索引神器

 更新時間:2025年06月28日 10:42:08   作者:科雷learning  
enumerate函數(shù)用于遍歷序列中的元素以及它們的下標,多用于在for循環(huán)中得到計數(shù),這篇文章主要介紹了Python遍歷索引神器enumerate函數(shù)的相關資料,需要的朋友可以參考下

對話實錄

小白:(苦惱)我在遍歷列表時,想知道每個元素的位置,只能用個計數(shù)器變量,好繁瑣,有沒有更簡單的辦法?

專家:(掏出法寶)enumerate函數(shù),遍歷同時獲取索引,輕松解決你的困擾!

enumerate函數(shù)基礎直擊

1. 基本用法

enumerate函數(shù)用于將一個可迭代對象(如列表、字符串、元組等)組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標。

源代碼中大家可以看到enumerate類定義了__iter__ 和__next__魔法方法,之前文章我們也說過定義了這兩種方法的可以作為迭代器使用。

函數(shù)可以接收2個參數(shù)

1)iterable(必填):可迭代對象,如列表、元組、字符串等。

2)start(可選):默認為0。不為0 意思是指定索引的起始值,比如start=1代表索引從1開始而不是從0開始。

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
  print(f"索引 {index} 對應的水果是 {fruit}")
# 輸出:
# 索引 0 對應的水果是 apple
# 索引 1 對應的水果是 banana
# 索引 2 對應的水果是 cherry

這里enumerate函數(shù)就像給每個水果貼上了對應的位置標簽,讓我們在遍歷水果列表時,輕松知道它們的位置。

2. 起始索引設定

enumerate函數(shù)還可以指定起始索引,默認從 0 開始,若需要從其他數(shù)字開始計數(shù),可傳入第二個參數(shù)。

students = ['Alice', 'Bob', 'Charlie']
for rank, student in enumerate(students, start = 1):
  print(f"排名第 {rank} 的學生是 {student}")
# 輸出:
# 排名第 1 的學生是 Alice
# 排名第 2 的學生是 Bob
# 排名第 3 的學生是 Charlie

在這種場景下,將起始索引設為 1,更符合日常排名的習慣。

常用功能及案例

案例 1:修改特定位置元素

在處理列表時,有時需要根據(jù)索引修改特定位置的元素,enumerate函數(shù)能精準定位。

scores = [85, 90, 78, 95]
for index, score in enumerate(scores):
  if index == 2:
    scores[index] = 80 # 將索引為2的成績修改為80
print(scores)
# 輸出:[85, 90, 80, 95]

案例 2:查找特定元素位置

利用enumerate函數(shù)可以快速找到列表中某個元素的所有位置。

colors = ['red', 'blue', 'green', 'blue', 'yellow']
blue_positions = [index for index, color in enumerate(colors) if color == 'blue']
print(blue_positions)
# 輸出:[1, 3]

這里通過列表推導式結合enumerate函數(shù),高效篩選出所有藍色元素的索引。

案例 3:文本處理中的行號標注

在處理文本文件時,enumerate函數(shù)可用于給每一行添加行號。

with open('example.txt', 'r', encoding='utf-8') as file:
for line_number, line in enumerate(file, start = 1):
  print(f"第 {line_number} 行: {line.strip()}")

這樣在查看文本內容時,能清晰知道每一行的行號,方便定位和處理文本數(shù)據(jù)。

閉坑指南

對不可迭代對象使用

enumerate函數(shù)只能用于可迭代對象,如果傳入不可迭代對象,會報錯。

number = 123
# 錯誤示范,會拋出 TypeError: 'int' object is not iterable
for index, value in enumerate(number):
   pass

確保傳入enumerate函數(shù)的是列表、字符串、元組、文件對象等可迭代對象。

誤解索引和元素順序

在for循環(huán)中,接收enumerate返回值時,索引在前,元素在后,順序不能錯。

words = ['hello', 'world']
# 錯誤示范,會導致變量賦值錯誤
for word, index in enumerate(words):
  pass

正確寫法是for index, word in enumerate(words): ,保持索引在前,元素在后的順序。

不恰當?shù)钠鹗妓饕?/h3>

設置起始索引時,要根據(jù)實際需求合理設定。如果起始索引設置不當,可能導致邏輯錯誤。

# 假設要統(tǒng)計學生考試排名,從1開始更合理
ranks = [1, 2, 3]
# 錯誤示范,起始索引設為0不符合排名習慣
for rank, student in enumerate(ranks, start = 0):
  print(f"排名第 {rank} 的學生成績是 {student}")

應根據(jù)實際場景,如排名場景,將起始索引設為 1 。

專家工具箱

1. 與zip函數(shù)聯(lián)用

enumerate和zip函數(shù)結合,可以在遍歷多個可迭代對象時,同時獲取索引和對應元素。

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for index, (name, age) in enumerate(zip(names, ages), start = 1):
  print(f"序號 {index},姓名 {name},年齡 {age}")
# 輸出:
# 序號 1,姓名 Alice,年齡 25
# 序號 2,姓名 Bob,年齡 30
# 序號 3,姓名 Charlie,年齡 35

2. 結合lambda函數(shù)

在一些需要對索引和元素進行復雜操作的場景中,結合lambda函數(shù)能實現(xiàn)更靈活的處理。

nums = [1, 2, 3, 4, 5]
result = list(map(lambda x: x[0] * x[1], enumerate(nums)))
print(result)
# 輸出:[0, 2, 6, 12, 20]

這里lambda函數(shù)將索引和對應元素相乘,map函數(shù)應用這個操作到整個列表。

3. 用于while循環(huán)模擬for循環(huán)遍歷

雖然enumerate函數(shù)常與for循環(huán)搭配,但在某些情況下,也可以在while循環(huán)中模擬類似功能。

my_list = ['a', 'b', 'c']
index = 0
while index < len(my_list):
  value = my_list[index]
  print(f"索引 {index} 處的值是 {value}")
  index += 1

這種方式在一些需要更復雜循環(huán)控制邏輯,但又想實現(xiàn)類似enumerate功能的場景中比較有用。

小白:(恍然大悟)原來enumerate函數(shù)有這么多巧妙用法!

專家:(微笑)記住:掌握enumerate函數(shù),遍歷數(shù)據(jù)時獲取索引將變得輕松又高效!

常用操作速查表

操作

代碼示例

說明

基本遍歷獲取索引

for index, value in enumerate([1, 2, 3])

遍歷列表同時獲取索引

設定起始索引

for index, value in enumerate([1, 2, 3], start = 1)

從指定數(shù)字開始計數(shù)

修改特定位置元素

for index, value in enumerate([1, 2, 3]): if index == 1: list[index] = 5

根據(jù)索引修改列表元素

查找元素位置

[index for index, value in enumerate([1, 2, 1, 3]) if value == 1]

找到特定元素的所有索引

總結

到此這篇關于Python中enumerate函數(shù)詳解之遍歷中的索引神器的文章就介紹到這了,更多相關Python遍歷索引enumerate函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • el-table 多表格彈窗嵌套數(shù)據(jù)顯示異常錯亂問題解決方案

    el-table 多表格彈窗嵌套數(shù)據(jù)顯示異常錯亂問題解決方案

    使用vue+element開發(fā)報表功能時,需要列表上某列的超鏈接按鈕彈窗展示,在彈窗的el-table列表某列中再次使用超鏈接按鈕點開彈窗,以此類推多表格彈窗嵌套,本文以彈窗兩次為例,需要的朋友可以參考下
    2023-11-11
  • 詳解Python使用Plotly繪圖工具,繪制甘特圖

    詳解Python使用Plotly繪圖工具,繪制甘特圖

    這篇文章主要介紹了Python使用Plotly繪圖工具,繪制甘特圖,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Python?Generator生成器函數(shù)基本概念及高級用途技巧示例

    Python?Generator生成器函數(shù)基本概念及高級用途技巧示例

    這篇文章主要為大家介紹了Python?Generator生成器函數(shù)基本概念及高級用途技巧示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 一文教你實現(xiàn)Python重試裝飾器

    一文教你實現(xiàn)Python重試裝飾器

    在寫業(yè)務代碼時候,有許多場景需要重試某塊業(yè)務邏輯,例如網(wǎng)絡請求、購物下單等,希望發(fā)生異常的時候多重試幾次。本文分享如何利用Python 的裝飾器來進行面向切面(AOP)的方式實現(xiàn)自動重試器,希望對大家有所幫助
    2023-02-02
  • 一文帶你弄懂Python3中的def?__init__

    一文帶你弄懂Python3中的def?__init__

    說起基礎的init函數(shù)也是我們的老朋友了,組合函數(shù)的要么是理解又一定的難度,要么是操作方法有復雜的地方,小編今天要講的def __init()__屬于第一種,下面這篇文章主要給大家介紹了關于如何通過一文帶你弄懂Python3中的def?__init__的相關資料,需要的朋友可以參考下
    2022-12-12
  • Pycharm導入anaconda環(huán)境的教程圖解

    Pycharm導入anaconda環(huán)境的教程圖解

    這篇文章主要介紹了Pycharm導入anaconda環(huán)境的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Pandas庫中iloc[]函數(shù)的使用方法

    Pandas庫中iloc[]函數(shù)的使用方法

    在數(shù)據(jù)分析過程中,很多時候需要從數(shù)據(jù)表中提取出相應的數(shù)據(jù),而這么做的前提是需要先“索引”出這一部分數(shù)據(jù),下面這篇文章主要給大家介紹了關于Pandas庫中iloc[]函數(shù)的使用方法,需要的朋友可以參考下
    2023-01-01
  • 12個Pandas/NumPy中的加速函數(shù)使用總結

    12個Pandas/NumPy中的加速函數(shù)使用總結

    在本文中,數(shù)據(jù)和分析工程師?Kunal?Dhariwal?為我們介紹了?12?種?Numpy?和?Pandas?函數(shù),這些高效的函數(shù)會令數(shù)據(jù)分析更為容易、便捷
    2022-09-09
  • python 調整圖片亮度的示例

    python 調整圖片亮度的示例

    這篇文章主要介紹了python 調整圖片亮度的示例代碼,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2020-12-12
  • Pandas之to_sql()插入數(shù)據(jù)到mysql中所遇到的問題及解決

    Pandas之to_sql()插入數(shù)據(jù)到mysql中所遇到的問題及解決

    這篇文章主要介紹了Pandas之to_sql()插入數(shù)據(jù)到mysql中所遇到的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論

柘城县| 耒阳市| 刚察县| 龙里县| 宜昌市| 广元市| 电白县| 六枝特区| 都江堰市| 玉林市| 通州市| 晋中市| 沙湾县| 洛扎县| 尖扎县| 广饶县| 惠安县| 泰来县| 彩票| 崇文区| 南溪县| 兴业县| 巴彦淖尔市| 白城市| 腾冲县| 甘泉县| 边坝县| 连州市| 吉水县| 永修县| 高雄县| 郧西县| 铁岭县| 清镇市| 页游| 新乡县| 阿克陶县| 普定县| 江都市| 伊川县| 静宁县|