2024-09-26 18:11:36 发布
网友
我想从头到尾分割一个列表,但是让迭代继续超过最后一个元素,并一直循环到第一个元素。然后继续前进直到停止。在
我试过这样的列表切片:
list_a = list(range(8)) reordered_list = list_a[5:2]
但只收到一张空名单:
理想情况下,我希望列表打印出来:
[5, 6, 7, 0, 1]
基本上,我希望遍历“整圈”并在索引0处继续迭代。在
def parse(input, start, stop): partial_list = input[:stop] return partial_list[start:] + partial_list[:start] full_list = range(8) parse(full_list, 2, 5) # Outputs [2, 3, 4, 0, 1]
编辑:你的问题有些不一致,如果可能,请重写。在
当你给切片索引如下-
list_a[5:2]
它将以1为一步,由于开始是在停止之后,所以这些索引之间没有元素(切片不会自行循环)。在
您应该使用modulus(remainment)运算符和for循环或列表理解来获得所需的列表。示例-
modulus
示例/演示-
这样做:
def foo(list_a, start, stop): if (start <= stop): return list_a[start:stop] else: return list_a[start:] + list_a[:stop]
输出:
编辑:你的问题有些不一致,如果可能,请重写。在
当你给切片索引如下-
它将以1为一步,由于开始是在停止之后,所以这些索引之间没有元素(切片不会自行循环)。在
您应该使用
^{pr2}$modulus
(remainment)运算符和for循环或列表理解来获得所需的列表。示例-示例/演示-
^{3}$这样做:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐