• 枚举函数(eumererate)


    python-enumerate枚举函数

    enumerate 函数用于遍历序列中的元素以及它们的下标:

    >>> for i,j in enumerate(('a','b','c')):
     print i,j

    0 a
    1 b
    2 c


    >>> for i,j in enumerate([1,2,3]):
     print i,j

    0 1
    1 2
    2 3


    >>> for i,j in enumerate({'a':1,'b':2}):
     print i,j

    0 a
    1 b

    >>> for i,j in enumerate('abc'):
     print i,j

    0 a
    1 b
    2 c

    Python中常见的序列主要有列表(list)、元组(tuple)和字符串(string)。关对于序列的遍历,Python推荐的是for…in…sequence语句做成员测试,这个语句其实和for…in…range()一样是按照索引顺序遍历的,但是用in语句的话不能直接使用索引值。

    在实际应用中,遍历经常也要用到索引值,比如计数,统计进度等等。用range的话怎么看着都麻烦,其实可以使用enumerate()函数。

    enumerate的意思是列举、枚举。

    enumerate()函数时Python的内置函数。

    原理分析

    基本用法

    s = [2,5,8,3,6,9]
    for i in enumerate(s):
        print i
    • 1
    • 2
    • 3

    结果为:

    (0, 2)
    (1, 5)
    (2, 8)
    (3, 3)
    (4, 6)
    (5, 9)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    按照一般的序列迭代方法,可以看出enumerate()函数的返回值是一个元组,元组构成为(index, value),也就是序列索引和值的元组。

    第二可选参数,解决索引从0开始输出的问题

    enumerate()有两个参数序列和起始索引。 
    即enumerate(sequence , index)

    s = [2,5,8,3,6,9]
    for i in enumerate(s, 1):
        print i
    • 1
    • 2
    • 3

    结果为:

    (1, 2)
    (2, 5)
    (3, 8)
    (4, 3)
    (5, 6)
    (6, 9)
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这样就解决了索引从0开始,而我们习惯从1开始输出的问题。

    示例

    下面以常见的序列,列表、元组、字符串为例简单说明enumerate()的使用方法。

    示例1 列表

    s = [2,5,8,3,6,9]
    for index, value in enumerate(s):
        print index, value
    • 1
    • 2
    • 3

    结果为:

    0 2
    1 5
    2 8
    3 3
    4 6
    5 9
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例2 元组

    s = (2,5,8,3,6,9)
    for index, value in enumerate(s):
        print index, value
    • 1
    • 2
    • 3

    结果为:

    0 2
    1 5
    2 8
    3 3
    4 6
    5 9
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    示例3 字符串

    s = 'test'
    for index, value in enumerate(s):
        print index, value
    • 1
    • 2
    • 3

    结果为:

    0 t
    1 e
    2 s
    3 t
  • 相关阅读:
    Python strip()方法
    C#操作计划任务
    C# Task的用法
    C#异步编程之浅谈Task
    [深入学习C#]C#实现多线程的方法:线程(Thread类)和线程池(ThreadPool)
    [深入学习C#]C#实现多线程的方式:使用Parallel类
    详细的.Net并行编程高级教程--Parallel
    5天玩转C#并行和多线程编程 —— 第一天 认识Parallel
    C# 并行任务——Parallel类
    C#多线程--线程池(ThreadPool)
  • 原文地址:https://www.cnblogs.com/yueyuanyi/p/9375556.html
Copyright © 2020-2023  润新知