Python的enumerate()函数
enumerate (parameter) 中的参数parameter为可迭代的对象(列表、字符串等)。说一千道一万,不如直接来实战,废话不多说,直接上案例,看完案例,后文解析。
字典型:
chars = {'我': 16, '他': 17, '你': 18}
for index, value in enumerate(chars):
print(index, ':', value)
# 也可以写成下面这种表达式
new_chars = {index:value for index, value in enumerate(chars)}
print('new_chars:', new_chars)
输出:
0 : 我
1 : 他
2 : 你
new_chars: {0: '我', 1: '他', 2: '你'}
列表型:
List = ['one', 'two', 'three']
for index, value in enumerate(List):
print(index, ':', value, end='\t')
# 其中print中的参数end是输出分隔符,默认是换行。
输出:
0 : one 1 : two 2 : three
字符串型:
str = 'abcde'
for index, value in enumerate(str):
print(index, ':', value)
输出:
0 : a
1 : b
2 : c
3 : d
4 : e
解析:
看完几个典型用例后,我想你应该已经明白一大半了,如果你属于“哦,我懂了”类型,你可以直接跳过这一部分,如果你属于“好像明白了”类型,请你继续往下看:
简单来说,enumerate()函数就是python自带的一个可以在输出一个序列的元素的同时输出对应的索引或位置。额,小白可能说了,这说的啥呀,太绕了,那我再给你来一个例子,什么样的例子呢,就是不用enumerate函数来实现enumerate函数的功能,代码如下:
# 这里指列举上述中的一种,以list为例,其余的可以自行测试。
new_list = ['我', '懂', '了']
list_len = len(new_list) # len()计算序列长度的,这里等于3
for i in range(list_len): # range 不懂自行百度,再解释就跑题了,😂。
print(i, end='\t')
print(new_list(i))
输出:
0 我
1 懂
2 了
这下应该明白上面那句话的意思了吧,再不懂我就报警了啊!!!
附录:
如果想指定初始索引值,那么这种情况,只需要在enumerate()中加一个参数即可,这个很简单,直接看例子就明白了。
# 这里我们设初始索引为10
str = 'abcde'
for index, value in enumerate(str, 10): # 瞪大眼睛,就是这么简简单单的写个10就行了
print(index, ':', value)
输出:
10 : a
11 : b
12 : c
13 : d
14 : e
好了,这下都没明白了,不明白的同学出门右拐————————抽个烟。
Ok,希望对你用帮助,我是麻辣小龙虾,专注于撰写短小精干类文章。