我正在使用 Python 3.5。
作为问题的一部分,我正在尝试设计一个将列表作为输入并将其还原的函数。因此,如果 x = [a, b, c]
函数将使 x = [c, b, a]
。
问题是,我不允许使用任何内置函数,这让我陷入困境。我最初的想法是函数内的以下循环:
for revert in range(1, len(x) + 1):
y.append(x[-revert])
它有效。但问题是我正在使用 len(x)
,我认为这是一个内置函数,对吗?
所以我四处搜索并制作了以下非常简单的代码:
y = x[::-1]
这正是我想要的,但它似乎太简单/容易了,我不确定 "::"
是否算作一个函数。
所以我想知道是否有人对如何手动设计上述功能有任何提示/想法?当你不能使用任何内置函数时,这似乎真的很难,而且它让我卡住了很长一段时间。
原文由 NAstuden 发布,翻译遵循 CC BY-SA 4.0 许可协议
range
和len
都是 内置函数。由于接受了list
_方法_,您可以使用insert
来执行此操作。它确实 很慢*但它可以在不使用任何内置插件的情况下完成 小 列表的工作:通过在第零个位置连续插入,您最终会得到输入列表的反转版本:
正在做:
也可以算是一种解决方案。
::-1
(::
有不同的结果)不是一个函数(它是一个切片)和[]
方法是。此外,对比insert
,它更快,可读性更强;只要确保你能够理解和解释它。 在这个 SO answer 中可以找到关于它如何工作的一个很好的解释。*Reeaaalllyyyy slow, see juanpa.arrivillaga’s answer for cool plot and
append
withpop
and take a look at in-placereverse
on lists as done in Yoav Glazner’s回答。