首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用while循环创建反向顺序列表-意外结果

使用while循环创建反向顺序列表-意外结果
EN

Stack Overflow用户
提问于 2014-02-24 08:32:16
回答 2查看 1.5K关注 0票数 1

我是一个入门级python类的学生,我的任务是使用while循环定义“反向(Mylist)”。

到目前为止,这就是我所拥有的:

代码语言:javascript
复制
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

我不知道我在这里做了什么错事。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-24 08:34:02

以下语句使xlistmylist都引用相同的list对象:

代码语言:javascript
复制
xlist = mylist

你得复制它。

代码语言:javascript
复制
xlist = mylist[:]

顺便说一句,使用for循环,您不需要手动增加a

代码语言:javascript
复制
for a in range(len(mylist)):
    ....
票数 2
EN

Stack Overflow用户

发布于 2014-02-24 10:21:37

代码语言:javascript
复制
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中更常用。

代码语言:javascript
复制
for i in range(2, -1, -1):
  xlist.append(mylist[i])

or:

xlist = [mylist[i], for i in range(2, -1, -1) ]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21982541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档