enumerate函数将一个可以遍历对象(如数组、列表、元组、张量)组合为一个索引序列,同时列出数据索引和数据,在for循环中经常使用。
enumerate(iterator,n),n代表起始索引号为多少,从0开始或者从1开始等等,即索引起始位置。
代码示例:
import torch
#list
names=['a','b','c','d']
print("列表:",list(enumerate(names)))
print("列表索引从1开始:",list(enumerate(names,1)))
#tuple
names=('a','b','c','d')
print('元组:',list(enumerate(names)))
#char
names='stong'
print('字符串:',list(enumerate(names)))
#三维tensor
a=torch.tensor([[[1,2,3,4],
[5,6,7,8],
[2,3,4,5]],
[[3,4,5,6],
[7,8,9,0],
[3,4,2,1]]])
print('张量:',list(enumerate(a,1)))
输出:
列表: [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
列表起始索引从1开始: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
元组: [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
字符串: [(0, 's'), (1, 't'), (2, 'o'), (3, 'n'), (4, 'g')]
张量: [(1, tensor([[1, 2, 3, 4],
[5, 6, 7, 8],
[2, 3, 4, 5]])), (2, tensor([[3, 4, 5, 6],
[7, 8, 9, 0],
[3, 4, 2, 1]]))]
注:对于高维数据的索引可参考代码中三维tensor。