如何解决我的代码,因此它逆转我的列表中的元素?

时间:2019-02-01 08:27:21

标签: python

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

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]

的列表

问题是输出仅返回到最后一个元素{em> 5 [5,5,5,5,5]。我该如何解决?

4 个答案:

答案 0 :(得分:2)

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]

答案 1 :(得分:0)

您使用过Lis[-1],它总是访问列表中的最后一个元素,因此仅返回该元素。

改用Lis[-i]

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

应该可以。

答案 2 :(得分:0)

只需使用简单的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为增量。结果,它将从头到尾进行反向循环。

答案 3 :(得分:0)

您可以按照以下步骤进行操作:

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)