在python的可序列化的数据处理中,我们经常性的会采用range()函数进行数据处理。
enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用enumerate()函数。
当然,同样的需求使用range()函数也可以实现,只是步骤会比较繁复,可以看下面的一组可序列化数据的处理比较。
# Creating a list of strings.
list_ = ['Java', 'Python', 'C', 'C++', 'C#', 'Scala', 'JavaScript']
使用range()函数处理索引和值
for index in range(len(list_)):
value = list_[index]
print('索引:{0},值:{1}'.format(index, value))
# 索引:0,值:Java
# 索引:1,值:Python
# 索引:2,值:C
# 索引:3,值:C++
# 索引:4,值:C#
# 索引:5,值:Scala
# 索引:6,值:JavaScript
使用enumerate()函数处理索引和值
for index, value in enumerate(list_):
print('索引:{0},值:{1}'.format(index, value))
# 索引:0,值:Java
# 索引:1,值:Python
# 索引:2,值:C
# 索引:3,值:C++
# 索引:4,值:C#
# 索引:5,值:Scala
# 索引:6,值:JavaScript
根据上面的代码块结果得知,处理同样逻辑的序列化数据enumerate函数的方式确实比较简便一些。
此外,在处理序列化的数据时可以个性化的定义遍历索引的起始位置。
for index, value in enumerate(list_, start=3):
print('索引:{0},值:{1}'.format(index, value))
# 索引:3,值:Java
# 索引:4,值:Python
# 索引:5,值:C
# 索引:6,值:C++
# 索引:7,值:C#
# 索引:8,值:Scala
# 索引:9,值:JavaScript
注意:这里我们来看一下被enumerate函数处理过的list_变成了什么?
# Printing the result of the enumerate function.
print('list_对象转换后结果:', enumerate(list_))
# list_对象转换后结果: <enumerate object at 0x00000176E63A9480>
若是正常情况下打印的list_应该是一个数据的列表,而这里则是被转换为enumerate管理了。
enumerate函数是支持所有序列化数据的,即列表、字典、字符串等等都是可以支持的。
并且enumerate本身作为python的内置函数自然有他强大的理由,方便我们使用,下面展示一下另外几种序列化数据的操作。
enumerate遍历字符串
# Creating a string object.
str_ = 'Python 集中营'
for index, value in enumerate(str_):
print('索引:{0},值:{1}'.format(index, value))
# 索引:0,值:P
# 索引:1,值:y
# 索引:2,值:t
# 索引:3,值:h
# 索引:4,值:o
# 索引:5,值:n
# 索引:6,值:
# 索引:7,值:集
# 索引:8,值:中
# 索引:9,值:营
enumerate遍历字典
# Creating a dictionary object.
dict_ = {'name': 'Python 集中营','age': 2,'表现': 'sss+'}
for index, key in enumerate(dict_):
print('索引:{0},键:{1},值:{2}'.format(index, key, dict_[key]))
# 索引:0,键:name,值:Python 集中营
# 索引:1,键:age,值:2
# 索引:2,键:表现,值:sss+
有需要桌面应用定制化开发的小伙伴可以前往 [软件定制活动页] 了解详情!
联系客服