欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python同時(shí)遍歷數(shù)組的索引和值的實(shí)例

 更新時(shí)間:2018年11月15日 14:12:06   作者:lilongsy  
今天小編就為大家分享一篇python同時(shí)遍歷數(shù)組的索引和值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

你想在迭代一個(gè)序列的同時(shí)跟蹤正在被處理的元素索引。

獲取索引

內(nèi)置的 enumerate() 函數(shù)可以很好的解決這個(gè)問(wèn)題:

>>> my_list = ['a', 'b', 'c']
>>> for idx, val in enumerate(my_list):
...  print(idx, val)
...
0 a
1 b
2 c

行號(hào)從1開(kāi)始

為了按傳統(tǒng)行號(hào)輸出(行號(hào)從1開(kāi)始),你可以傳遞一個(gè)開(kāi)始參數(shù):

>>> my_list = ['a', 'b', 'c']
>>> for idx, val in enumerate(my_list, 1):
...  print(idx, val)
...
1 a
2 b
3 c

行號(hào)定位

這種情況在你遍歷文件時(shí)想在錯(cuò)誤消息中使用行號(hào)定位時(shí)候非常有用:

def parse_data(filename):
 with open(filename, 'rt') as f:
  for lineno, line in enumerate(f, 1):
   fields = line.split()
   try:
    count = int(fields[1])
    ...
   except ValueError as e:
    print('Line {}: Parse error: {}'.format(lineno, e))

enumerate() 對(duì)于跟蹤某些值在列表中出現(xiàn)的位置是很有用的。 所以,如果你想將一個(gè)文件中出現(xiàn)的單詞映射到它出現(xiàn)的行號(hào)上去,可以很容易的利用 enumerate() 來(lái)完成:

word_summary = defaultdict(list)

with open('myfile.txt', 'r') as f:
 lines = f.readlines()

for idx, line in enumerate(lines):
 # Create a list of words in current line
 words = [w.strip().lower() for w in line.split()]
 for word in words:
  word_summary[word].append(idx)

如果你處理完文件后打印 word_summary ,會(huì)發(fā)現(xiàn)它是一個(gè)字典(準(zhǔn)確來(lái)講是一個(gè) defaultdict ), 對(duì)于每個(gè)單詞有一個(gè) key ,每個(gè) key 對(duì)應(yīng)的值是一個(gè)由這個(gè)單詞出現(xiàn)的行號(hào)組成的列表。 如果某個(gè)單詞在一行中出現(xiàn)過(guò)兩次,那么這個(gè)行號(hào)也會(huì)出現(xiàn)兩次, 同時(shí)也可以作為文本的一個(gè)簡(jiǎn)單統(tǒng)計(jì)。

計(jì)數(shù)變量

當(dāng)你想額外定義一個(gè)計(jì)數(shù)變量的時(shí)候,使用 enumerate() 函數(shù)會(huì)更加簡(jiǎn)單。你可能會(huì)像下面這樣寫代碼:

lineno = 1
for line in f:
 # Process line
 ...
 lineno += 1

但是如果使用 enumerate() 函數(shù)來(lái)代替就顯得更加優(yōu)雅了:

for lineno, line in enumerate(f):
 # Process line
 ...

enumerate() 函數(shù)返回的是一個(gè) enumerate 對(duì)象實(shí)例, 它是一個(gè)迭代器,返回連續(xù)的包含一個(gè)計(jì)數(shù)和一個(gè)值的元組, 元組中的值通過(guò)在傳入序列上調(diào)用 next() 返回。

陷阱

還有一點(diǎn)可能并不很重要,但是也值得注意, 有時(shí)候當(dāng)你在一個(gè)已經(jīng)解壓后的元組序列上使用 enumerate() 函數(shù)時(shí)很容易調(diào)入陷阱。 你得像下面正確的方式這樣寫:

data = [ (1, 2), (3, 4), (5, 6), (7, 8) ]

# Correct!
for n, (x, y) in enumerate(data):
 ...
# Error!
for n, x, y in enumerate(data):
 ...

參考:

https://docs.python.org/2/library/functions.html#enumerate

以上這篇python同時(shí)遍歷數(shù)組的索引和值的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 中將值附加到集合的操作方法

    Python 中將值附加到集合的操作方法

    這篇文章主要介紹了Python 中將值附加到集合的操作方法,通過(guò)使用 add() 方法或 update() 方法,你可以向 Python 中的集合中添加元素,在添加元素時(shí),需要注意不允許重復(fù)元素和集合是無(wú)序的,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Python3實(shí)現(xiàn)對(duì)列表按元組指定列進(jìn)行排序的方法分析

    Python3實(shí)現(xiàn)對(duì)列表按元組指定列進(jìn)行排序的方法分析

    這篇文章主要介紹了Python3實(shí)現(xiàn)對(duì)列表按元組指定列進(jìn)行排序的方法,結(jié)合實(shí)例形式分析了Python3針對(duì)列表排序的常見(jiàn)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-12-12
  • python中NumPy的安裝與基本操作

    python中NumPy的安裝與基本操作

    Python雖然也提供了array模塊,但其只支持一維數(shù)組,不支持多維數(shù)組,也沒(méi)有各種運(yùn)算函數(shù),因而不適合數(shù)值運(yùn)算,NumPy的出現(xiàn)彌補(bǔ)了這些不足,這篇文章主要給大家介紹了關(guān)于python中NumPy的安裝與基本操作的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Gradio機(jī)器學(xué)習(xí)模型快速部署工具接口狀態(tài)

    Gradio機(jī)器學(xué)習(xí)模型快速部署工具接口狀態(tài)

    這篇文章主要為大家介紹了Gradio機(jī)器學(xué)習(xí)模型快速部署工具接口狀態(tài)的原文翻譯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 關(guān)于Python包導(dǎo)入報(bào)錯(cuò)的問(wèn)題總結(jié)

    關(guān)于Python包導(dǎo)入報(bào)錯(cuò)的問(wèn)題總結(jié)

    這篇文章主要介紹了關(guān)于Python包導(dǎo)入報(bào)錯(cuò)的問(wèn)題總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python如何標(biāo)準(zhǔn)化日期時(shí)間格式轉(zhuǎn)化成非標(biāo)準(zhǔn)化格式

    python如何標(biāo)準(zhǔn)化日期時(shí)間格式轉(zhuǎn)化成非標(biāo)準(zhǔn)化格式

    這篇文章主要介紹了python如何標(biāo)準(zhǔn)化日期時(shí)間格式轉(zhuǎn)化成非標(biāo)準(zhǔn)化格式問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python爬蟲(chóng)之Selenium鼠標(biāo)事件的實(shí)現(xiàn)

    Python爬蟲(chóng)之Selenium鼠標(biāo)事件的實(shí)現(xiàn)

    這篇文章主要介紹了Python爬蟲(chóng)之Selenium鼠標(biāo)事件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 如何利用python倒置所輸字符串的順序

    如何利用python倒置所輸字符串的順序

    這篇文章主要介紹了如何利用python倒置所輸字符串的順序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Python list運(yùn)算操作代碼實(shí)例解析

    Python list運(yùn)算操作代碼實(shí)例解析

    這篇文章主要介紹了Python list運(yùn)算操作代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 爬蟲(chóng)代理池Python3WebSpider源代碼測(cè)試過(guò)程解析

    爬蟲(chóng)代理池Python3WebSpider源代碼測(cè)試過(guò)程解析

    這篇文章主要介紹了爬蟲(chóng)代理池Python3WebSpider源代碼測(cè)試過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論