亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

你想在迭代一個序列的同時跟蹤正在被處理的元素索引。

獲取索引

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

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

行號從1開始

為了按傳統(tǒng)行號輸出(行號從1開始),你可以傳遞一個開始參數(shù):

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

行號定位

這種情況在你遍歷文件時想在錯誤消息中使用行號定位時候非常有用:

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() 對于跟蹤某些值在列表中出現(xiàn)的位置是很有用的。 所以,如果你想將一個文件中出現(xiàn)的單詞映射到它出現(xiàn)的行號上去,可以很容易的利用 enumerate() 來完成:

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 ,會發(fā)現(xiàn)它是一個字典(準確來講是一個 defaultdict ), 對于每個單詞有一個 key ,每個 key 對應的值是一個由這個單詞出現(xiàn)的行號組成的列表。 如果某個單詞在一行中出現(xiàn)過兩次,那么這個行號也會出現(xiàn)兩次, 同時也可以作為文本的一個簡單統(tǒng)計。

計數(shù)變量

當你想額外定義一個計數(shù)變量的時候,使用 enumerate() 函數(shù)會更加簡單。你可能會像下面這樣寫代碼:

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

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

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

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

陷阱

還有一點可能并不很重要,但是也值得注意, 有時候當你在一個已經(jīng)解壓后的元組序列上使用 enumerate() 函數(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ù)組的索引和值的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

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

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

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

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

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

    python中NumPy的安裝與基本操作

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

    Gradio機器學習模型快速部署工具接口狀態(tài)

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

    關于Python包導入報錯的問題總結

    這篇文章主要介紹了關于Python包導入報錯的問題總結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python如何標準化日期時間格式轉化成非標準化格式

    python如何標準化日期時間格式轉化成非標準化格式

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

    Python爬蟲之Selenium鼠標事件的實現(xiàn)

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

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

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

    Python list運算操作代碼實例解析

    這篇文章主要介紹了Python list運算操作代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • 爬蟲代理池Python3WebSpider源代碼測試過程解析

    爬蟲代理池Python3WebSpider源代碼測試過程解析

    這篇文章主要介紹了爬蟲代理池Python3WebSpider源代碼測試過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12

最新評論