【发布时间】:2012-08-07 17:18:41
【问题描述】:
如果我只想在循环中使用索引,我应该更好地将range/xrange 函数与len() 结合使用
a = [1,2,3]
for i in xrange(len(a)):
print i
还是enumerate?即使我根本不会使用p?
for i,p in enumerate(a):
print i
【问题讨论】:
-
我真的很好奇你的用例是什么。
-
我遇到了一些代码,实际上
enumerate不应该在第一名[[profiel.attr[i].x for i,p in enumerate(profiel.attr)] for profiel in prof_obj]中使用。不需要p,或者应该是[[p.attr.x for p in profiel.attr] for profiel in prof_obj]。所以我问自己应该以一种或另一种方式重写代码...... -
这段代码实际上应该是
[[p.x for p in profiel.attr] for profiel in prof_obj]。 -
没错,我的错。不能再编辑了,谢谢你纠正这个问题。
-
@Sven Marnach,最近我做了一些编码,实际上我只需要索引来访问数组切片,如下所示:
sum_dist = [[sum(afst[:i]) for i,_ in enumerate(afst,start=1)] for afst in dist_betw]。 (尽管我知道这个构造并不是真正需要的,因为我也可以使用itertools.accumlate()。)