zoukankan      html  css  js  c++  java
  • 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]
  • 相关阅读:
    Sort函数的用法
    hdu 1087 Super Jumping! Jumping! Jumping!(最大上升子序列和)
    hdu 1159 Common Subsequence(LCS)
    最长公共子序列
    蓝桥杯 -- 取字母
    蓝桥杯 -- 串的处理
    蓝桥杯 -- 奇怪的比赛
    蓝桥杯 -- 微生物繁殖
    hdu 1159 Common Subsequence(最长公共子序列)
    hdu 2458 Kindergarten
  • 原文地址:https://www.cnblogs.com/cpl9412290130/p/9752660.html
Copyright © 2011-2022 走看看