我试图创建自己的逆转。这里是我的代码:
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 =李氏[:: - 1],这是在切片蟒列表的概念。
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
这应该工作。
只需使用简单的Python的名单切片:
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)