如何以给定值反转列表?

时间:2016-06-04 11:16:18

标签: python list python-3.x python-3.5

我试图设计一个代码,该代码将在给定值的索引处反转给定列表。超出值的列表的其余部分将以正确的顺序打印,但我似乎无法完成它。

这是我到目前为止的代码。

def reverse(my_list, value):

    lst = []
    lst2 = []

    for x in range(my_list[0], my_list[value]):
        x = my_list[x]
        lst2.append(x)

    for i in range(len(lst2)-1, -1, -1):
        x = lst2[i]
        lst.append(x)

    for x in range(my_list[value], len(my_list)):
        x = my_list[x]
        lst.append(x)

    print(lst)

如果输入是这个。

reverse([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 5)

输出应为。

[5, 4, 3, 2, 1, 6, 7, 8, 9, 10]

但输出就是这个。

[6, 5, 4, 3, 2, 7, 8, 9, 10]

有人可以帮我确定如何获得所需的输出吗?

2 个答案:

答案 0 :(得分:2)

使用切片实现起来会容易得多:

def reverse(my_list, value):
    return my_list[:value][::-1] + my_list[value::]

答案 1 :(得分:0)

第一个和第三个循环中的索引是错误的,您必须遍历索引而不是值。写得像这样:

expiresIn: '1440m'

输出:[5,4,3,2,1,6,7,8,9,10]