python如何獲取列表中每個(gè)元素的下標(biāo)位置
Git是編程中的基本技能之一,互聯(lián)網(wǎng)公司幾乎都在使用Git進(jìn)行協(xié)作編程,昨天還有位禪友在微信上專門告訴我說星期五面試的時(shí)候剛好被問到 Git,幸好在這幾天學(xué)了一下。Git并不難,但會(huì)Git至少可以說明一個(gè)人的學(xué)習(xí)能力或者說對(duì)技術(shù)的嗅覺能跟上主流,如果面試問你GitHub是什么都不知道,面試官就會(huì)對(duì)你打一個(gè)大的問號(hào)。
簡(jiǎn)單點(diǎn)評(píng)這一道題。
在使用 for 循環(huán)迭代一個(gè)列表時(shí),有時(shí)我們需要獲取列表中每個(gè)元素所在的下標(biāo)位置是多少,例如 numbers = [10, 29, 30, 41],要求輸出 (0, 10),(1, 29),(2, 30),(3, 41)
這道題的實(shí)現(xiàn)方式主要有兩種方式,第一種方式是通過獲取列表長(zhǎng)度來(lái)迭代列表下標(biāo)
for i in range(len(numbers)): print('({0}, {1})'.format(i, numbers[i]))
第二種方法是直接使用enumerate函數(shù):
numbers = [10, 29, 30, 41] for index, value in enumerate(numbers): print(index, value)
后者才是更地道的寫法,在Python之禪中有一條格言是:There should be on,and preferably only one,obvious way to do it. 就是說我們寫代碼的時(shí)候應(yīng)該選擇一種而且最好是唯一一種顯而易見的方式來(lái)實(shí)現(xiàn)。
內(nèi)置函數(shù) enumerate 還可以接收一個(gè)默認(rèn)參數(shù) start ,用于指定 index 從哪個(gè)數(shù)開始,默認(rèn)是0,不知道有多少禪友知道這個(gè)用法,如果你不知道,那么建議你遇到新知識(shí)就更加詳細(xì)地了解一下官方文檔,而不僅僅只是淺嘗輒止 ,學(xué)會(huì)查文檔也是一個(gè)很重要的學(xué)習(xí)方法。文檔
大家提交的代碼大部分都回答對(duì)了,但也有些問題代碼,比如命名很隨意:
numbers = [10, 29, 30, 41] for i, j in enumerate(numbers): print(i, j)
用 i 和 j 這種沒有任何意義的名字顯得很業(yè)余,有人說這只是練習(xí),但如果練習(xí)都是這樣的態(tài)度,很難說工作時(shí)你能取一個(gè)合理的名字。
還有禪友用list工廠函數(shù)返回一個(gè)新的列表,這種寫法有點(diǎn)畫蛇添足,而且在迭代超大的列表時(shí)會(huì)占用更多的內(nèi)存,因?yàn)槟阌謩?chuàng)建了一個(gè)新的列表。
numbers = [10,29,30,41] for i in list(enumerate(numbers)): print(i,end=' ')
勝者屬于堅(jiān)持到最后的人
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pycharm創(chuàng)建scrapy項(xiàng)目教程及遇到的坑解析
這篇文章主要介紹了pycharm創(chuàng)建scrapy項(xiàng)目教程及遇到的坑解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08windows下python 3.9 Numpy scipy和matlabplot的安裝教程詳解
這篇文章主要介紹了windows下python 3.9 Numpy scipy和matlabplot的安裝教程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11Python3爬蟲關(guān)于識(shí)別檢驗(yàn)滑動(dòng)驗(yàn)證碼的實(shí)例
在本篇內(nèi)容里小編給大家分享了關(guān)于Python3爬蟲關(guān)于識(shí)別檢驗(yàn)滑動(dòng)驗(yàn)證碼的實(shí)例內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-07-07Python 3.x 安裝opencv+opencv_contrib的操作方法
下面小編就為大家分享一篇Python 3.x 安裝opencv+opencv_contrib的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-04-04python 通過logging寫入日志到文件和控制臺(tái)的實(shí)例
下面小編就為大家分享一篇python 通過logging寫入日志到文件和控制臺(tái)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-04-04python+opencv實(shí)現(xiàn)的簡(jiǎn)單人臉識(shí)別代碼示例
這篇文章主要介紹了圖像識(shí)別 python+opencv的簡(jiǎn)單人臉識(shí)別,具有一定參考價(jià)值,需要的朋友可以參考下。2017-11-11django定期執(zhí)行任務(wù)(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇django定期執(zhí)行任務(wù)(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-11-11