python - 在 python 中反转列表 - 为什么我无法返回修改后的列表
问题描述
我正在研究一个可以反转列表的函数,类似于 reverse()。我尝试使用切片构建函数,还尝试查找旧帖子并遵循类似的逻辑。我理解反转元素背后的逻辑,但机械地我不明白为什么元素在函数结束时保持不反转。
def reverse_list(listofval):
newlist = []
index = 0
while index < len(listofval):
newlist.append(listofval[len(listofval) - 1 - index])
index += 1
return newlist
所以上面的函数只是获取旧列表(val 的列表)并继续向后读取旧列表,然后以相反的顺序添加每个元素(旧列表中的最后一个元素成为第一个,第一个成为最后一个)。但是“return newlist”似乎返回了一个未修改的列表。
def reverse_list(listofval):
newlist = listofval[::-1]
return newlist
同样,我构建了另一个使用切片更直接的函数,当返回新列表时,没有任何改变。我想“返回新列表”一定有问题,但我不完全确定我在那里犯了什么错误。
非常感谢你们!
解决方案
获得返回值的方法是这样的。
def retList():
list = []
for i in range(0,10):
list.append(i)
return list
a = retList()
print a
您还可以在代码中定义 newlist[] 之前将全局变量用于新列表
global newlist
newlist = []
你也可以使用 append left
from collections import deque
def reverse_list(listofval):
global newlist
newlist = []
for i in listofval:
newlist = deque(newlist)
newlist.appendleft(i)
print(newlist)
listofval = [1, 2, 3, 4, 5]
reverse_list(listofval)
print(newlist)
推荐阅读
- javascript - target.status 值未定义
- node.js - 尝试使用 sinon 监视函数但出现错误
- visual-studio-2010 - 配置 Bamboo 以使用 MS Build Xaml 模板
- android - NotificationListenerService 不适用于环聊
- python - 带有来自validated_data的kwargs的Django Rest Framework update()
- amazon-web-services - 通过 route53 到本地的 HTTPS
- java - java.lang.NoClassDefFoundError:解析失败:Lcom/google/android/gms/common/internal/zzbq Nearby Place App
- javascript - 使用 HTML 和 JavaScript 的逻辑门
- ios - 归档 CocoaPods 依赖项以发布到 App Store 时出错
- excel - 根据匹配数据从一个文档复制/粘贴到另一个文档