在具有不同起始索引的列表上完全循环

2024-03-28 20:44:59 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有这个清单

station_list = [1, 2, 3, 4]

这是一个例子,实际列表可以更长,但总是这种模式与整数增加。作为代码的一部分,如果满足某个条件,我希望在1以外的其他点访问该列表。 假设我想从2开始迭代。我如何用一个从2开始的for-loop迭代列表,但仍然只得到一次所有元素? 所以迭代顺序应该是2, 3, 4, 1。你知道吗


Tags: 代码loop元素列表for顺序模式整数
3条回答

简单方法:使用原始列表中的两个块构建重新排序的列表:

station_list = [1, 2, 3, 4]
start = 1
for i in station_list[start:] + station_list[:start]:
    print (i)

如果不想构造重新排序的桩号列表,可以改用索引换行:

station_list = [1, 2, 3, 4]
start = 1
n = len(station_list)
for i in range(n):
    print (station_list[(i+start)%n])

这可以通过简单的方法来实现收藏.deque然后旋转任何索引。你知道吗

from collections import deque
d = deque([1, 2, 3, 4])
d.rotate(-1)
print (d)

输出:

deque([2, 3, 4, 1])

您可以这样做:

station_list = [1, 2, 3, 4]
start = 1  # item = 2 is at index position 1!
for item in (station_list[start:] + station_list[:start]):
    # your code here

这将输出:

[2, 3, 4, 1]

您可以在pythonhere中了解有关切片的更多信息

如果您想获得一些关于Python中列表的额外信息,this可能会有所帮助。你知道吗

相关问题 更多 >