我希望更多有经验的 Python 用户能够帮助我提高效率:
如果我需要循环操作,例如,如果数组的最后一个元素需要连接到枚举循环中的第一个元素,是否有比以下更好的方法?
foo=['tic', 'tac', 'toe']
for i, v in enumerate(foo):
if i<len(foo)-1:
print(i, v,foo[i+1])
else:
print(i, v,foo[0])
如果需要多个元素滚动,那么这种基本方法会变得更加复杂,比如说要得到这样的结果:
0 tic tac toe
1 tac toe tic
2 toe tic tac
说到滚动,我研究了numpy.roll,但这似乎正在创建新的数组(我认为?),如果可能的话,我会尽量避免。
请注意,这可能是诸如 sin(foo[i])*foo[i+1]
或其他需要连接回第一个元素的复杂计算,此示例来自pyhton.org 网站可能会产生误导,因为我不是在寻找排列。
最佳答案
你可以通过切片来做到这一点。这适用于任何数组大小
foo = ['tic', 'tac', 'toe']
for i in range(len(foo)):
print(i, ' '.join(foo[i:] + foo[:i]))
输出
0 tic tac toe
1 tac toe tic
2 toe tic tac
关于python - 在 Python 中使用 enumerate() 将索引旋转回 `for` 循环中的第一个元素的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75123231/