python中enumerate()函數的用法


描述:

enumerate() 函數用於將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標,一般用在 for 循環當中。其英文意為:枚舉,列舉.

函數說明:

  • 語法:
    1 enumerate(sequence, [start=0])
    2 參數:sequence -- 一個序列、迭代器或其他支持迭代對象。
    3      start -- 下標起始位置。
  • 舉例說明:存在一個sequence,對其使用enumerate將會得到如下結果:
    1 start        sequence[0]
    2 start+1    sequence[1]
    3 start+2      sequence[2]......

     

具體例子:

實例1:

 1 >>> sessions = ['a', 'b', 'c', 'd']
 2 >>> for i, element in enumerate(sessions):
 3 ...     print(i,element)
 4 ... 
 5 0 a
 6 1 b
 7 2 c
 8 3 d
 9 
10 >>> sessions = ['a', 'b', 'c', 'd']
11 >>> for i, element in enumerate(sessions, 1):  # 第二個參數表示下標開始的位置,取值為1表示下標從1開始計算.默認為0
12 ...     print(i,element)
13 ... 
14 1 a
15 2 b
16 3 c
17 4 d

實例2:

 1 #列表
 2 >>> list = [1, 2, 3, 4, 5, 6]
 3 >>> list[::-1]
 4 [6, 5, 4, 3, 2, 1]
 5 >>> for index, item in enumerate(list):
 6 ...     print(index, item)
 7 ... 
 8 0 1
 9 1 2
10 2 3
11 3 4
12 4 5
13 5 6
14 
15 #字符串
16 >>> for i, j in enumerate('abcde'):
17 ...     print(i, j)
18 ... 
19 0 a
20 1 b
21 2 c
22 3 d
23 4 e
24 
25 #數組
26 >>> for i, j in enumerate(('a', 'b', 'c', 'd', 'e')):
27 ...     print(i, j)
28 ... 
29 0 a
30 1 b
31 2 c
32 3 d
33 4 e
34 
35 #字典
36 >>> for i, j in enumerate({'a':1, 'b':2}):
37 ...     print(i, j)
38 ... 
39 0 a
40 1 b
41
42 #集合
43 >>> for i, j in enumerate({'d', 'b'}):
44 ... print(i, j)
45 ...
46
0 d
47
1 b

實例3:

1 #如果要統計文件的行數,可以這樣寫:
2 count = len(open(filepath, 'r').readlines())
3 #這種方法簡單,但是可能比較慢,當文件比較大時甚至不能工作。
4 
5 #可以利用enumerate():
6 count = 0
7 for index, line in enumerate(open(filepath,'r')): 
8     count += 1

實例4:sort_array[5, 3, 2, 8, 1, 4]==[1, 3, 2, 8, 5, 4]

def sort_array(arr):
    odd_index = [ind for (ind, val) in enumerate(arr) if val%2==1]    # 取出奇數的索引值,本例[0, 1, 4]
    sort_odd = sorted([odd for odd in arr if odd%2==1])               # 將奇數序列排序[1, 3, 5]
    j = 0
    for i in odd_index:                                               # i分別為0, 1, 4
        arr[i] = sort_odd[j]                                          # arr[0] = 1, arr[1] = 3, arr[4] = 5
        j+=1
    return arr if arr!=[] else[]                                      # arr = [1, 3, 2, 8, 5, 4]


arr = [5, 3, 2, 8, 1, 4]
new_arr = sort_array(arr)
print(new_arr)

output:
[1, 3, 2, 8, 5, 4]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM