Python列表如何再次从最后一个项目到第一个项目?
我需要按顺序迭代,直到找到或最大化。 例如: ds=[1,2,3,4,5,6,7,8,9] tmp=3启动变量 最大值=5最大化变量 目标=8 因此输出:[4,5,6,7,8] 对不起,我的英语不好。试试: >>>ds [1, 2, 3, 4, 5, 6, 7, 8, 9] >>>ds*5+6//出借+1[5:5+6] [6, 7, 8, 9, 1, 2] 现在-5是你的起始位置,5+6是你的结束位置。您希望对整个数据集进行多次迭代以包含结束位置,因此: 5+6//借出+1 如果你的起始位置是秒,或者以后重复,那么在你的情况下,如果它大于8。您可以通过减去以下内容将其移回: 起始位置//借出*借出Python列表如何再次从最后一个项目到第一个项目?,python,python-3.x,Python,Python 3.x,我需要按顺序迭代,直到找到或最大化。 例如: ds=[1,2,3,4,5,6,7,8,9] tmp=3启动变量 最大值=5最大化变量 目标=8 因此输出:[4,5,6,7,8] 对不起,我的英语不好。试试: >>>ds [1, 2, 3, 4, 5, 6, 7, 8, 9] >>>ds*5+6//出借+1[5:5+6] [6, 7, 8, 9, 1, 2] 现在-5是你的起始位置,5+6是你的结束位置。您希望对整个数据集进行多次迭代以包含结束位置,因此: 5+6//借出+1 如果你的起始位置是秒
从起始位置和结束位置。有一种内置的方法来完成此操作
new_data = i[starting_index : ending_index]
如果要获取列表的其余部分,可以将数字留空。比如:
>>>i = [0,8,9,4]
>>>i[1:]
[8,9,4]
作为一种非常简单的方法,您可以使用相同的列表对连接进行索引。 然而,从记忆的角度来看,肯定不是最好的解决方案
# ds = [1,2,3,4,5,6,7,8,9]
start = 4
length = 7
res = (ds + ds)[start:start+length]
# [5, 6, 7, 8, 9, 1, 2]
看到这个解决方案了吗?我用了一个for循环来达到你的目标
ds = [1,2,3,4,5,6,7,8,9]
tmp = 3 # start (variable)
max = 5 # maximize (variable)
target=8
i=0 # itiration to loop on the list
for x in ds:
if ds[i]<tmp: #till now we didnt reach start point
i=i+1
else:
print(ds[i])
i=i+1
if i == target: #since the target has been reached
break
所以你想打印它们或者把它们放在另一个列表中?你尝试过什么?您有任何代码可以显示您的尝试吗?你得到了什么?你期望得到什么?我也有点不明白你想做什么。从5开始的最后6项是什么意思?从索引5开始?还是在值5之后开始?你似乎在绕圈子,这对于列表来说是不正常的行为。这似乎是重复的。你要找的是一份循环列表。如果您遇到任何问题,请尝试实施并编辑您的问题以了解具体情况。此问题的可能副本与提问者期望的输出不匹配。现在还不清楚他们到底想要什么,但我怀疑这是真的。我需要按顺序迭代,直到找到或最大化为止。例如:ds=[1,2,3,4,5,6,7,8,9]tmp=3开始变量max=5最大化变量target=8,所以输出:[4,5,6,7,8]对不起,我的英语不好。@zcun是的,现在试试——这是更一般化的方法,你不需要在这里复制。切片会做得很好你的答案可能对我的程序有用,谢谢!