Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python列表如何再次从最后一个项目到第一个项目?_Python_Python 3.x - Fatal编程技术网

Python列表如何再次从最后一个项目到第一个项目?

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 如果你的起始位置是秒

我需要按顺序迭代,直到找到或最大化。 例如:

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。您可以通过减去以下内容将其移回: 起始位置//借出*借出
从起始位置和结束位置。

有一种内置的方法来完成此操作

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是的,现在试试——这是更一般化的方法,你不需要在这里复制。切片会做得很好你的答案可能对我的程序有用,谢谢!