Python 使用while循环创建逆序列表-意外结果
我是一名入门级python课程的学生,我的任务是使用while循环定义“reverse(mylist)” 这就是我到目前为止所做的:Python 使用while循环创建逆序列表-意外结果,python,list,python-3.x,while-loop,reverse,Python,List,Python 3.x,While Loop,Reverse,我是一名入门级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
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]
我不确定我在这里做错了什么。以下语句使
xlist
,mylist
引用了相同的列表对象:
xlist = mylist
你需要复制它
xlist = mylist[:]
顺便说一句,使用for
循环,您不需要手动增加a
:
for a in range(len(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) ]
你能修好你的压痕吗?
for i in range(2, -1, -1):
xlist.append(mylist[i])
or:
xlist = [mylist[i], for i in range(2, -1, -1) ]