python - 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]
)。
解决方案
你可以这样做:
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']
推荐阅读
- node.js - Laravel Echo 监听器没有在听
- c++ - int64_t 在机器字大小等于 32 位的计算机上如何工作?
- excel - 具有重要意义的平均值
- nlog - NLog - 文件轮换 - 序列问题
- javascript - 如果你在一个promise中有一个promise,你需要两个catch吗?
- python - 找不到 MQTT python 应用程序不订阅或接收消息的原因
- batch-file - 根据部分文件夹名称递增文件夹名称
- ionic4 - How to change color of button text in popover in ionic 4
- html - justify content center property in bootstrap not working to center contents in a row
- python - Remove a User from GCP project