Python tips---enumerate函数

Python tips—enumerate函数

1.enumerate函数语法

Python中有一个方便的函数enumerate,可以枚举index元素,这样不必单独设定tag记录index。
列表、元组、集合都可以使用enumerate迭代输出。

enumerate函数的基本语法是:

## sequence代表迭代的序列
## start代表迭代序列第一个元素时使用的index
enumerate(sequence, start=0)
2. enumerate函数应用举例
(1)简单使用(同时输出index和element)
## create a sequence
browsers = ['Chrome','Firefox','Opera','Vivaldi']

## create an enumeratable and convert to list
for index,element in enumerate(browsers):
    print((index,element)) ## 此处输出为元组,可以少一层括号

## output
(0, 'Chrome')
(1, 'Firefox')
(2, 'Opera')
(3, 'Vivaldi')
(2)指定序列第一个元素的index值

指定第一个元素的index为1,那么对应位置的index就比默认情况(python index第一个为0)大1。

# create an enumeratable and convert to list
for index,element in enumerate(browsers, start=1):
    print((index,element))
 
## output(turple output)
(1, 'Chrome')
(2, 'Firefox')
(3, 'Opera')
(4, 'Vivaldi')

for i in enumerate(browsers):
    print(i)
    
## output (not tueple)
(1, 'Chrome')
(2, 'Firefox')
(3, 'Opera')
(4, 'Vivaldi')
(3)迭代字符串
fruit = "Apple"
for i,j in enumerate(fruit, start=2):
    print(i, j)
    
## output
2 A
3 p
4 p
5 l
6 e
(4)迭代元组
fruits = [(15,"Fifteen"), (12,"Twelve"), (19,"Nineteen")]
for i,j in enumerate(fruits):print(i,j)

## output
0 (15, 'Fifteen')
1 (12, 'Twelve')
2 (19, 'Nineteen')

格式化输出迭代元组结果:

for i,(price,name) in enumerate(fruits):
    print(f"index {i}, price {price} and name {name}")

## output
index 0, price 15 and name Fifteen
index 1, price 12 and name Twelve
index 2, price 19 and name Nineteen
(5)与字典结合

a. enumerate 结果转换成字典

l1 = ["a", "b", "c", "d"]
list(enumerate(l1)) 
## 返回:
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]

dict(list(enumerate(l1)))
dict((i,v) for i,v in enumerate(l1))
## 返回字典:
{0: 'a', 1: 'b', 2: 'c', 3: 'd'}

b. 字典中的迭代可以使用items函数

d = {'a':1, 'b':2, 'c':3}
for i in enumerate(d):
    print(i,d[i[1]])

for k,v in d.items():
    print(k,v)
(6)统计文件行数 (有时候需要行数作为一个tag)
## count file lines(test.hmp.txt had 1000 lines)
for l in enumerate(open("test.hmp.txt", 'r'), 1): ## start = 1
    pass
print( l[0] )

## output
1000

参考:
https://pythonbasics.org/enumerate/
https://blog.csdn.net/fwj_ntu/article/details/106193686

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值