【Python】 enumerate()

enumerate()使用

  • 如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
list1 = ["这", "是", "一个", "测试"]
for i in range (len(list1)):
    print i ,list1[i]
  • 1
  • 2
  • 3
  • 上述方法有些累赘,利用enumerate()会更加直接和优美:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
    print index, item
>>>
012 一个
3 测试
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • enumerate还可以接收第二个参数,用于指定索引起始值,如:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):
    print index, item
>>>
123 一个
4 测试
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

补充

如果要统计文件的行数,可以这样写:

count = len(open(filepath, 'r').readlines())
  • 1

这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。

可以利用enumerate():

count = 0
for index, line in enumerate(open(filepath,'r')): 
    count += 1
### Python `enumerate` 函数详解 #### 功能描述 `enumerate()` 是 Python 的内置函数之一,用于将可迭代对象组合成索引序列,同时列出数据和数据下标[^1]。 #### 基本语法 ```python for index, value in enumerate(iterable, start=0): # do something with index and value ``` - 参数说明: - `iterable`: 需要遍历的对象(列表、元组等) - `start`: 下标的起始位置,默认为 0 #### 实际应用案例 ##### 示例一:基本用法 展示如何通过 `enumerate` 获取列表元素及其对应的索引: ```python fruits = ["apple", "banana", "cherry"] for idx, fruit in enumerate(fruits): print(f"Index {idx}: {fruit}") ``` 输出结果如下: ``` Index 0: apple Index 1: banana Index 2: cherry ``` ##### 示例二:指定起始编号 可以通过设置第二个参数来改变计数起点: ```python months = ["January", "February", "March"] for month_num, month_name in enumerate(months, start=1): print(f"{month_num}月是{month_name}") ``` 输出结果如下: ``` 1月是January 2月是February 3月是March ``` ##### 示例三:结合字符串操作 可以用来处理字符串中的字符并获取其位置: ```python text = "hello" char_positions = list(enumerate(text)) print(char_positions) ``` 输出结果是一个由元组组成的列表,其中每个元组包含两个元素——字符的位置以及该字符本身: ``` [(0, 'h'), (1, 'e'), (2, 'l'), (3, 'l'), (4, 'o')] ``` #### 使用场景建议 当需要在一个循环中访问集合内项目的实际值的同时还需要知道当前项的序号时,推荐使用 `enumerate` 来简化代码逻辑。这不仅提高了程序效率也增强了代码的可读性和维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值