我正在尝试创建自己的反向函数。这是我的代码:
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]
。我该如何解决?
答案 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)