我是一个介绍级python类的学生,我的任务是使用while循环定义“reverse(mylist)”
这是我到目前为止所做的:
def reverse(mylist):
a=0
b=len(mylist)
xlist=mylist
while(a!=b):
mylist[a]=xlist[(-a)-1]
a+=1
return mylist
假设输入列表是[1,2,3,4,5,6],使用我的反向函数我将获得输出[6,5,4,4,5,6] ...... [1,2,3,4,5]将成为[5,4,3,4,5]
我不确定我在这里做错了什么。
答案 0 :(得分:2)
以下语句使xlist
,mylist
引用相同的列表对象:
xlist = mylist
您需要复制它。
xlist = mylist[:]
BTW,使用for
循环,您无需手动增加a
:
for a in range(len(mylist)):
....
答案 1 :(得分:0)
def reverse(mylist):
a=0
b=len(mylist)
xlist=[]
while(a!=b):
mylist[a:a]=xlist[(-a)-1]
a+=1
return mylist
列表通过引用而不是值传输。 你需要创建新的列表。 “xlist = mylist”只创建一个引用。 ps “for in”在python中更常用。
for i in range(2, -1, -1):
xlist.append(mylist[i])
or:
xlist = [mylist[i], for i in range(2, -1, -1) ]