[英]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.