菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 基础教程
(追記) (追記ここまで)

Python enumerate() 函数

Python 内置函数 Python 内置函数


描述

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

Python 2.3. 以上版本可用,2.6 添加 start 参数。

语法

以下是 enumerate() 方法的语法:

enumerate(sequence, [start=0])

参数

  • sequence -- 一个序列、迭代器或其他支持迭代对象。
  • start -- 下标起始位置的值。

返回值

返回 enumerate(枚举) 对象。


实例

以下展示了使用 enumerate() 方法的实例:

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1)) # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

普通的 for 循环

>>> i = 0
>>> seq = ['one', 'two', 'three']
>>> for element in seq:
... print i, seq[i]
... i += 1
...
0 one
1 two
2 three

for 循环使用 enumerate

>>> seq = ['one', 'two', 'three']
>>> for i, element in enumerate(seq):
... print i, element
...
0 one
1 two
2 three

Python 内置函数 Python 内置函数

AI 思考中...

4 篇笔记 写笔记

  1. #0

    叶秋

    856***[email protected]

    145

    巧妙利用 enumerate() 批量修改列表内的元素:

    list1 = ['01','02','03']
    unit_element = '1'
    for i,element in enumerate(list1):
     list1[i] = unit_element + element
    print(list1)

    输出结果:

    ['101', '102', '103']

    叶秋

    856***[email protected]

    6年前 (2020年11月19日)
  2. #0
    438

    上面的例子举的不合适,要得到想的效果,不如推导式:

    list1 = ['01','02','03']
    list1=["1"+str for str in list1]
    print(list1)

    输出结果:

    ['101', '102', '103']
    6年前 (2020年12月26日)
  3. #0

    PortosHan

    415***[email protected]

    20

    实现方式不同,还可以使用 map 函数:

    list11 = ['01', '02', '03']
    print(list(map(lambda x: '1' + x, list11)))

    PortosHan

    415***[email protected]

    5年前 (2021年07月28日)
  4. #0

    ShimaJuan

    454***[email protected]

    26

    enumerate() 的好处是任何你想要下标的时候都可以,像一维数组确实用列表表达式很方便,但如果在多维的情况,用 enumerate() 有助于理解。例如要让数组所有数加 1,写出来很直观:

    list=[[1, 2, 3, 4], [2, 3], [7,8,9]]
    for i,clist in enumerate(list):
     for j,num in enumerate(clist):
     list[i][j] += 1

    再多层也就是嵌套下来,没有任何障碍,当然列表表达式也不是不行:

    list=[[n+1 for n in K] for K in list]

    用列表表达式在简单场合会更方便。不过如果操作复杂,可能表达式就不好了。

    ShimaJuan

    454***[email protected]

    4年前 (2022年02月15日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /