麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

python同時遍歷數組的索引和值的實例

2020-02-15 23:41:58
字體:
來源:轉載
供稿:網友

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

獲取索引

內置的 enumerate() 函數可以很好的解決這個問題:

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

行號從1開始

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

>>> my_list = ['a', 'b', 'c']>>> for idx, val in enumerate(my_list, 1):...  print(idx, val)...1 a2 b3 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() 對于跟蹤某些值在列表中出現的位置是很有用的。 所以,如果你想將一個文件中出現的單詞映射到它出現的行號上去,可以很容易的利用 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 ,會發現它是一個字典(準確來講是一個 defaultdict ), 對于每個單詞有一個 key ,每個 key 對應的值是一個由這個單詞出現的行號組成的列表。 如果某個單詞在一行中出現過兩次,那么這個行號也會出現兩次, 同時也可以作為文本的一個簡單統計。

計數變量

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

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

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

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

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

陷阱

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

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同時遍歷數組的索引和值的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91成人午夜性a一级毛片 | 午夜视频免费播放 | 欧美成人一区二区三区 | 一区二区三区黄色 | 国产va在线观看 | 国产成人av免费看 | 国产88久久久国产精品免费二区 | 激情小说激情图片激情电影 | 操嫩草| 成人三级电影网址 | 亚洲免费毛片基地 | 高清国产午夜精品久久久久久 | 激情久久精品 | 一级毛片真人免费播放视频 | 久久久久二区 | 日日碰日日操 | 国产精品视频中文字幕 | 一区二区三高清 | 久久丝袜脚交足黄网站免费 | 国产精品视频在 | 日韩中文字幕一区二区三区 | 91aa.app| 成人免费福利视频 | 在线成人免费网站 | 色网免费观看 | 亚洲一级簧片 | 国产精品视频自拍 | 一级免费观看 | 成人毛片免费 | 又黄又爽免费无遮挡在线观看 | 色婷婷久久久亚洲一区二区三区 | 最新av在线免费观看 | 国产成人在线观看免费 | 欧美 国产 亚洲 卡通 综合 | 在线观看免费毛片视频 | 久久99精品国产99久久6男男 | 91短视频版高清在线观看www | 国产无遮挡一区二区三区毛片日本 | 色日本视频| 免费国产自久久久久三四区久久 | 精品国产呦系列在线看 |