標籤:nes 其他 orm pos 方法 ibm readlines 用法 引號
新接觸了一個函數 enumrate ,很多情況下我們想獲得可迭代的容器(例如dict、list、tuple等)元素的時候,想同時獲得一個序號用以他用。
代碼常常寫成這個樣子
list_a = ["apple", "dell", "hp", "ibm"]for idx in range(len(list_a)): print("idx={0}, content={1}".format(idx, list_a[idx]))
如果是dict,那麼會寫成這樣子
dict_a={"a":"apple","b":"banana","o":"orange"}idx = 0for it in dict_a: idx = idx + 1 print("key[{0}]={1},idx={2}".format(it, dict_a[it], idx))
但功能有了,美觀較差
這時候enumrate就該出場了。enumrate函數可以同時返回元素和索引號。上面兩個例子,可以寫成這個樣子
list_a = ["apple", "dell", "hp", "ibm"]for idx,val in enumerate(list_a): print("idx={0}, content={1}".format(idx, val))
而輸出為
idx=0, content=apple
idx=1, content=dell
idx=2, content=hp
idx=3, content=ibm
而dict可以寫成這樣子
for idx,key in enumerate(dict_a): print("key[{0}]={1},idx={2}".format(key,dict_a[key],idx))
輸出為
key[b]=banana,idx=0
key[o]=orange,idx=1
key[a]=apple,idx=2
另外學習到其他博主的用法
如果要統計檔案的行數,可以這樣寫:
count = len(open(filepath, ‘r‘).readlines())
這種方法簡單,但是可能比較慢,當檔案比較大時甚至不能工作。
可以利用enumerate():
count = 0for index, line in enumerate(open(filepath,‘r‘)): count += 1
python enumrate使用