python - 在 Python 中使用 enumerate() 将索引旋转回 `for` 循环中的第一个元素的更好方法

标签 python for-loop enumeration

我希望更多有经验的 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/

相关文章:

python - 如何将数据帧的第一行读取为数据行而不是标题

r - 为什么“向量化”这个简单的R循环会得到不同的结果?

algorithm - 子集和枚举的时间复杂度

java - 遍历 AttributeSet 枚举

python - 循环输入数据库 Python 时出现异常

Python:尝试交叉应用两个数据框

python - 关于python中for循环的问题

c - 为什么使用 for(;;)?

objective-c - 计算子 NSDictionary 键

python - 我的Python输出在哪里?