# enumerate 返回一个可遍历对象中各元素的值及索引
for i,j in enumerate('abc'):
print i,j
0 a
1 b
2 c
# 重复值保留
for i,j in enumerate('abca'):
print i,j
0 a
1 b
2 c
3 a
# 返回的第一个值是索引,第二个是值
a = {j:i for i,j in enumerate('abc')}
print a
# 定义dict将值与索引的位置调换。结果不一定按索引顺序排列。
{'a': 0, 'c': 2, 'b': 1}
# 当值有重复时,如此定义的dict中将是索引值大的值覆盖索引值低的值。利用了dict中key唯一的特性。
a = {j:i for i,j in enumerate('abcab')}
print a
# 'a'出现再次,索引分别为0,3。 0被3覆盖,出来的dict中只保留了值较大的索引。
{'a': 3, 'c': 2, 'b': 4}