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]

猜你喜欢

转载自www.cnblogs.com/cpl9412290130/p/9752660.html