我从 range(len(list)) 或 enumerate(list)? 中了解到,使用
例如,我有一个项目,其中我有一个由 3n 个元素 's [0],s [1],...,s [3n-1]' 组成的列表,并且我需要以 nx3 表格形式打印它们。我编写的代码类似于:
range(len(s))
不是编写 Python 的很好的方式。如果我们不需要循环 len(s)
次,而是需要循环例如 len(s)//3
次或 len(s)-5
次等,有什么替代的方法可以编写 for 循环呢?是否可以将这些循环转换为使用 enumerate
呢?例如,我有一个项目,其中我有一个由 3n 个元素 's [0],s [1],...,s [3n-1]' 组成的列表,并且我需要以 nx3 表格形式打印它们。我编写的代码类似于:
for i in range(len(s)//3):
row = str(s[3*i]) + " " + str(s[3*i+1]) + " " + str(s[3*i+2])
print(row)
range(len(s))
不是编写 Python 的很好的方式,不确定您是从哪里得到这个想法的,是从那个问题还是其他地方。在 Python 中完全可以使用它。不建议的是在循环中迭代索引,然后获取元素;此时最好使用enumerate
。 - jdehesarange(len(l))
(尽管仍然可能有一些情况下它是有意义的)。但是如果你只想迭代一系列数字,无论是到达len(l)
还是任何其他数字,这是正确的方法(实际上,这正是range
/xrange
的目的)。在我看来,在这种情况下使用enumerate
并忽略列表元素是不必要的,最重要的是,它稍微不够明确,因为你 没有 使用列表元素。 - jdehesa