首页 > 解决方案 > 反向函数也改变了原始列表

问题描述

我编写了函数,理论上应该可以正常工作,但是该函数似乎也在改变原始列表,我不希望原始列表反转,而是仅反向显示变量 a

def listreverse(list_input):
    length = 0
    list_swapped1 = list_input
    for i in range(len(list_input)):
        length += 1
    swap = (length + 1) // 2
    for i in range(swap):
        temp1 = list_swapped1[0 + i]
        temp2 = list_swapped1[(length - 1) - i]
        list_swapped1[0 + i] = temp2
        list_swapped1[(length - 1) - i] = temp1
    return list_swapped1


mylist = [1, 2, 8, 4, 5]
a = listreverse(mylist)
print(a)
print(mylist)

输出

[5, 4, 8, 2, 1]
[5, 4, 8, 2, 1]

提前致谢

标签: pythonpython-3.x

解决方案


推荐阅读