Python 如何以给定值反转列表?

Python 如何以给定值反转列表?,python,list,python-3.x,python-3.5,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(lst

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

这是我目前掌握的代码

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)
[6, 5, 4, 3, 2, 7, 8, 9, 10]
输出应该是

[5, 4, 3, 2, 1, 6, 7, 8, 9, 10]
但结果却是这样

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

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

使用切片将更容易实现:

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

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

def reverse(my_list, value):

    lst = []
    lst2 = []

    for x in range(0, 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(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]

不需要双“切片”,因此创建两个临时列表-当然,它不会对小列表产生太大影响,但它肯定会显示大列表和任意切片的速度和内存使用情况<代码>我的列表[value-1::-1]+我的列表[value:]只要少创建一个列表就可以正常工作。