繁体   English   中英

如何修复我的代码,以便它反转我列表中的元素?

[英]How do I fix my code, so it reverses the elements in my list?

我正在尝试创建自己的反向函数。 这是我的代码:

X = [1,2,3,4,5]

def reverZe(Lis):
    nlst = []
    for i in range (1,len(Lis)+1):
        nlst.append(Lis[-1])
    return nlst

new = reverZe(X)

print(new)

结果应该将列表 'X' 反转为[5,4,3,2,1]列表

问题是输出一直返回到最后一个元素5 ,即[5,5,5,5,5] 我该如何解决?

nlst = Lis[::-1],这是python中对列表进行切片的概念。

X = [1,2,3,4,5]

def reverZe(Lis):
  nlst = Lis[::-1]
  return nlst

new = reverZe(X)

print(new)

上述程序的输出将是 [5,4,3,2,1]

您使用了Lis[-1] ,它始终访问列表中的最后一个元素,因此只返回该元素。

用这个代替Lis[-i]

def reverseInPlace(Lis):
    nlst = []
    for i in range (1,len(Lis)+1):
        nlst.append(Lis[-i])
    return nlst

那应该工作。

只需使用简单的pythonic列表切片:

In [1]: l = [1, 2, 3, 4, 5]

In [2]: l[::-1]
Out[2]: [5, 4, 3, 2, 1]

说明:切片有三个参数: start:stop:step 所以,这里从 0 开始,它将一直持续到最后,但增量为 -1。 结果,它将从头到尾进行反向循环。

以下是您可以遵循的一些流程:

X = [1, 2, 3, 4, 5]

# corrected version of your code
def reverZe(Lis):
    nlst = []
    for i in range(1, len(Lis)+1):
        nlst.append(Lis[-i])
    return nlst

#Some other processes you can follow:

# def reverZe(Lis):
#     nlst = []
#     for i in Lis[::-1]:
#         nlst.append(i)
#     return nlst

# def reverZe(Lis):
#     nlst = list(reversed(Lis))
#     return nlst

# def reverZe(Lis):
#   nlst = Lis[::-1]
#   return nlst


new = reverZe(X)

print(new)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM