如何迭代从不同索引开始的列表,并且还环绕

inorin1202

在这里提出了类似的问题(用于迭代Python列表的开始索引),但是我还需要一件事。

假设我有一个列表[周日,周一,...周六],并且我想从不同的位置开始迭代该列表,环绕并完成循环。例如

a = [Sunday, Monday, ...Saturday]
for i in range(7):
    print("----")
    for j in (SOMETHING):
        print(j)

OUTPUT:
----
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
----
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
----
Tuesday
.
.
.
Friday

我该如何处理?

亚图

一种方法是使用collections.deque

from collections import deque
from itertools import repeat

d = deque(['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])

n = 7
for i in repeat(d, n):
    print(*i, sep='\n')
    print('-----')
    i.rotate(-1)

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
-----
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
-----
Tuesday
.
.
.

尽管您可能会发现创建嵌套列表更有趣:

n = 7
l = []
for i in repeat(d, n):
    sl = []
    for j in i:
        sl.append(j)
    l.append(sl)
    i.rotate(-1)

print(l)
# [['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], 
#  ['Monday', 'Tuesday', 'Wednesday'...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果它们具有相同的顺序,但是从不同的索引开始,如何从python列表中删除嵌套列表项

如何遍历从不同索引开始的数组,同时仍然遍历整个数组?

如何从不同的起始索引而不是[0]的列表开始循环?

从变量索引开始遍历列表

使用函数对从指定索引开始的 Python 中不同长度的列表求和

如何从NodeList的索引开始应用样式?

如何使用youtube-dl脚本从播放列表中的某些索引开始下载?

Bash-如何从任意索引开始为数组分配列表

从匹配索引开始,循环遍历列表多次

LINQ-从特定索引开始的列表中获取项目

我想打印从 1 个索引开始的列表元素对

从给定索引开始的列表中数字的总和,递归

使用Java 8 IntStream以循环方式从给定索引开始迭代列表,并获取与条件匹配的第一个元素的索引

如何从特定索引开始-基本的jQuery滑块

如何显示从特定索引开始的 JSON 对象?

如何从特定索引开始读取字符串?

从索引开始的谓词查找

Python:从列表创建数据框,其中每个新行均从特定列表索引开始

开始索引以迭代Python列表

如何从负索引开始切片到正索引或相反

在给定索引开始的情况下拆分python列表

使嵌入式YouTube播放列表从随机索引开始

改进代码以从0以外的索引开始遍历python列表中的每个项目

从n个索引开始,从对象列表中获取n个(部分)对象

Postgres 不使用索引开始查询

JavaScript数组减少从索引开始

Kotlin For循环从给定索引开始

从特定索引开始更改数组

如何制作一个ListView.builder从一个特定的索引开始