首页 > 解决方案 > Python - 如何从可迭代的第 n 个项目开始迭代,并在第 n-1 个项目完成?

问题描述

假设我有一个类似的列表a = ["dog", "cat", "house", "mouse", "goose"]。如果我想在 开始一个 for 循环a[3]并在 结束它a[2],我该怎么做?a[3:2]当然会返回一个空列表,因此我无法对其进行迭代。有没有比迭代更 Pythonic 的方式来做到这一点a[3:]+a[:3]

需要明确的是,我想要的是有一个从 开始的 for 循环a[n],然后转到a[n+1]等,a[n+2]直到列表末尾;然后,当到达列表的最后一个元素时,循环继续从a[0]并继续直到a[n-1](与我获得的相同a[3:]+a[:3])。

标签: pythonlistloops

解决方案


你可以这样做:

a = ["dog", "cat", "house", "mouse", "goose"]

print(a[3:2:-1])

输出将是:

['mouse']

显然,如果你想包含2你必须编写a[3:1:-1]的索引(最终索引它不会像往常一样包含在内)


更新:更新请求后,这应该是您想要的

a = ["dog", "cat", "house", "mouse", "goose"]

print(a[3:] + a[:3])

输出将是:

['mouse', 'goose', 'dog', 'cat', 'house']

推荐阅读