提到遍历,最常出现的操作可能是for i in range(len())了,比如,对某个list遍历并保留符合条件数值的索引:
# 分组
# 前缀为st→ group1;前缀为ha→ group2
lst = ['stack','stand','happy','handle','store']
d_ = defaultdict(list)
for i in range(len(lst)):
if lst[i].startswith('sta'):
d_[1].append(i)
elif lst[i].startswith('ha'):
d_[2].append(i)
else:
continue
通过上面的例子可以看到这种遍历方式在数值调用和表示上都是比较麻烦的。
那么有没有更方便清爽的遍历方式呢?针对这个问题,下面本文将介绍针对不同对象的多种不同遍历方式,相信总有一种能适合你的需求~
通过本文你将了解到👇
万能的enumerate
enumerate作为python中的一种内置方法,支持对所有可迭代对象进行遍历,使用enumerate对对象进行遍历,返回一个迭代器,提供内部索引及其对应的数值。
>>>print([i for i in enumerate(lst)])
[(0, 'stack'), (1, 'stand'), (2, 'happy'), (3, 'handle'), (4, 'store')]
通过上例可以看到,enumerate将返回包含对象各索引和对应数值形成的元组的迭代器。
enumerate可以对所有可迭代对象进行遍历,这意味着python内置基本数据类型list,tuple,set,字符串等等,以及numpy数组等都可以作为对象,如下例:
集合遍历
# 集合遍历
>>>st = {1,2,-2,3,0,-1,'a','c'}
>>>for i,v in enumerate(st):
print(i,v)
0 0
1 1
2 2
3 3
4 a
5 -1
6 c
7 -2
元组遍历
# 元组遍历
>>>tpl = ('a','b','c','d')
>>>for i,v in enumerate(tpl):
print(i,v)
0 a
1 b
2 c
3 d
字符串遍历
# 字符串遍历
>>>s = '1