Python 中 enumerate(s) 和 range() 的對比

一、enumerate(s) 是什么?

for i, c in enumerate(s):...
  • enumerate(s) 是一個內置函數,用于在遍歷可迭代對象時,同時獲得元素的索引和值
  • 它返回的是一個**(index, element)** 元組。
  • 常用于遍歷字符串、列表、元組等時,如果你既想拿到下標,又想拿到值,就用 enumerate()

例子:

s = 'abc'
for i, c in enumerate(s):print(i, c)

輸出:

0 a
1 b
2 c

二、range() 是什么?

for i in range(len(s)):...
  • range(n) 是一個生成整數序列的函數,通常用于按下標訪問容器。
  • 它不直接給你元素,只給你索引(整數)。
  • 如果你需要拿到值,必須手動訪問:s[i]

例子:

s = 'abc'
for i in range(len(s)):print(i, s[i])

輸出一樣:

0 a
1 b
2 c

三、總結對比表

對比點

enumerate(s)

range(len(s))

是否返回元素值

? 返回 (索引, 元素值)

? 只返回索引,需手動 s[i] 獲取值

可讀性

? 更直觀、語義清晰

?? 略繁瑣(尤其訪問元素需要 s[i]

是否依賴索引訪問

? 不依賴索引訪問

? 必須依賴索引訪問

適用范圍

適合遍歷時需要“下標 + 元素值”

適合只需要索引或配合 s[i] 使用


? 總結建議

  • 如果你在遍歷一個字符串、列表等時,同時需要索引和元素 —— 用 enumerate()簡潔、優雅
  • 如果你只是基于索引操作(如雙指針、窗口處理) —— range() 會更通用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/88500.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88500.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88500.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【一起來學AI大模型】RAG系統流程:查詢→向量化→檢索→生成

RAG(Retrieval-Augmented Generation)系統核心流程非常精準: 查詢 → 向量化 → 檢索 → 生成 這是 RAG 實現“知識增強”的關鍵路徑。下面我們結合具體組件(如 ChromaDB、LangChain 檢索器)詳細拆解每個步驟&#xff…

圖像硬解碼和軟解碼

一、什么是圖像解碼? 圖像解碼是指將壓縮編碼(如 JPEG、PNG、WebP、H.264/AVC、H.265/HEVC 等格式)的圖像或視頻數據還原為原始像素數據(如 RGB、YUV)的過程。 解碼可以在CPU(軟件解碼)或專用硬…

Camera2API筆記

1. 常用對象CameraManager 相機服務。用于獲取相機對象和相機信息。CameraDevices 相機設備。負責連接相機、創建會話、生成拍攝請求,管理相機生命周期。CameraCaptureSession 相機拍攝會話。用于預覽和拍攝。一個相機只能有一個活躍會話。打開新會話時,…

觸控屏gt1947

比較器判斷是否翻轉,周期控制器負責控制周期(period)。sample采器有多個影子,每次采樣查看是否到了翻轉的時候。

DNS和ICMP

域名介紹在網絡通信中,需要用到ip加port,但是ip并不方便記憶,于是我們常用域名來對應一個ip例如:www.baidu.com 對應 156.36.56.98(隨便寫的)com: 一級域名. 表示這是一個企業域名. 同級的還有 "…

2022 年 12 月青少年軟編等考 C 語言六級真題解析

目錄 T1. 電話號碼T2. 區間合并T3. 撲克牌排序T4. 現代藝術思路分析T1. 電話號碼 題目鏈接:SOJ D1137 此題為 2021 年 12 月六級第一題原題,見 2021 年 12 月青少年軟編等考 C 語言六級真題解析中的 T1。 T2. 區間合并 題目鏈接:SOJ D1112 此題為 2021 年 9 月六級第三…

無鎖隊列:從零構建生產者-消費者數據結構

高性能無鎖隊列:從零構建生產者-消費者數據結構 問題的本質 生產者-消費者問題的核心挑戰不在于數據傳輸,而在于協調。傳統的鎖機制雖然簡單,但帶來了三個致命問題: 性能瓶頸:線程阻塞和上下文切換優先級反轉&#xff…

JAVA面試寶典 -《Spring IOC核心:Bean生命周期全解析》

文章目錄🌱 《Spring IOC核心:Bean生命周期全解析》1?? 引言:Bean 生命周期為什么重要?2?? Bean 生命周期概覽(圖示 簡要說明)3?? 每一步詳細解析(源碼理解 示例)3.1 &#…

Python 類型注解實戰:`Optional` 與安全數據處理的藝術

Python 類型注解實戰:Optional 與安全數據處理的藝術 在 Python 開發中,類型注解(Type Hints)已經成為現代 Python 項目的標配。本文將通過一個真實的認證令牌獲取函數 get_auth_token(),深入解析 Optional 類型的應用…

深入MyBatis:CRUD操作與高級查詢實戰

引言 在上一篇文章中,我們介紹了Mybatis的基礎使用。 如有需要請移步查看: MyBatis入門:快速掌握用戶查詢實戰https://blog.csdn.net/qq_52331401/article/details/149270402?spm1001.2014.3001.5502 今天,我將通過一個完整的…

Flink DataStream API詳解(二)

一、引言 咱兩書接上回,上一篇文章主要介紹了DataStream API一些基本的使用,主要是針對單數據流的場景下,但是在實際的流處理場景中,常常需要對多個數據流進行合并、拆分等操作,以滿足復雜的業務需求。Flink 的 DataS…

Unity3D游戲線上崩潰排查指南

前言 排查Unity3D線上游戲崩潰是個系統工程,需要結合工具鏈、日志分析和版本管理。以下是詳細的排查指南和關鍵步驟: 對惹,這里有一個游戲開發交流小組,希望大家可以點擊進來一起交流一下開發經驗呀! 一、崩潰信息收…

DPDK性能優化實踐:系統級性能調優的方法論與實戰(一套通用的方法論)

性能優化的挑戰與現實困境 在高性能網絡處理領域,性能優化往往被視為一門“玄學”而非科學。許多開發者在面對性能瓶頸時,要么盲目追求單一指標的極致優化,要么采用"試錯法"進行零散的局部調優,結果往往是投入大量精力卻…

Docker的/var/lib/docker/目錄占用100%的處理方法

文章目錄 一、問題描述 二、解決措施 三、可能遇到的問題 問題1、問題描述:執行 sudo systemctl stop docker 命令時,提示 Warning: Stopping docker.service, but it can still be activated by: docker.socket 問題2、問題描述:執行 s…

【UE教程/進階】Slate鏈式編輯原理

目錄鏈式編輯操作" . "操作" "操作" [ ] "鏈式編輯 SNew().[] 操作" . " SLATE_ARGUMENT(ArgType, ArgName) 宏 調用宏 SLATE_PRIVATE_ARGUMENT_VARIABLE(ArgType, ArgName) ,在FArgument結構體中添加了變量…

將手工建模模型(fbx、obj)轉換為3dtiles的免費工具!

文章目錄1、工具下載2、使用說明3、詳細說明命令行格式示例命令參數說明4、源碼地址1、工具下載 百度網盤下載鏈接 選擇最新版本下載即可,支持Linux和Windows系統 2、使用說明 1)按住鍵盤winr鍵,在彈出的窗口中輸入cmd 2)點擊…

FreeRTOS源碼學習之內核初始化

目錄 前言 一、主函數內容 二、osKernelInitialize ()內核初始化函數內容 三、IS_IRQ()宏定義中斷檢測函數內容 四、如果這篇文章能幫助到你,請點個贊鼓勵一下吧ξ( ?>??)~ 前言 使用STM32CubeMX添加FreeRTOS進入工程之后,會自動在ma…

Docker—— 鏡像構建原因

在現代軟件開發和運維中,Docker已成為一種非常流行的工具,它通過容器化應用程序來簡化部署過程。然而,默認的官方鏡像往往只能滿足基礎需求,無法涵蓋所有特定項目的具體要求。原因說明系統級改動無法通過 volume 實現修改用戶、刪…

鋰電池自動化生產線的現狀與發展

鋰電池自動化生產線的概述鋰電池自動化生產線是指采用自動化設備和控制系統,實現鋰電池從原材料到成品的全流程自動化生產過程。隨著新能源產業的快速發展,鋰電池作為重要的儲能元件,其生產制造技術也在不斷進步。自動化生產線通過減少人工干…

java底層的native和沙箱安全機制

沙箱安全機制沙箱(Sandbox)安全機制是一種將程序或代碼運行在隔離環境中的安全技術,旨在限制其對系統資源(如文件系統、網絡、內存、其他進程等)的訪問權限,從而降低潛在惡意代碼帶來的風險。其核心思想是“…