NAs*_*den 9 python list python-3.x
我正在使用Python 3.5.
作为问题的一部分,我正在尝试设计一个将列表作为输入并将其还原的函数.所以,如果x = [a, b, c]该功能会x = [c, b, a].
问题是,我不允许使用任何内置函数,它让我陷入困境.我最初的想法是函数内的以下循环:
for revert in range(1, len(x) + 1):
y.append(x[-revert])
Run Code Online (Sandbox Code Playgroud)
它有效.但问题是我正在使用len(x),我认为这是一个内置函数,对吗?
所以我四处搜索并制作了以下非常简单的代码:
y = x[::-1]
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,但它看起来几乎太简单/容易,我不确定是否"::"算作一个功能.
所以我想知道是否有人有任何提示/想法如何手动设计所述功能?当你不能使用任何内置函数时它看起来真的很难,现在我已经停留了很长时间.
range并且len都是内置函数.由于list 方法被接受,你可以这样做insert.它实际上很慢*但是它可以在不使用任何内置函数的情况下完成小型列表的工作:
def rev(l):
r = []
for i in l:
r.insert(0, i)
return r
Run Code Online (Sandbox Code Playgroud)
通过连续插入第零个位置,您最终得到了输入列表的反转版本:
>>> print(rev([1, 2, 3, 4]))
[4, 3, 2, 1]
Run Code Online (Sandbox Code Playgroud)
这样做:
def rev(l):
return l[::-1]
Run Code Online (Sandbox Code Playgroud)
也可以被认为是一种解决方案.::-1(::具有不同的结果)不是一个函数(它是一个切片),并且[]再次是一个列表方法.此外,对比insert,它更快,更可读; 只要确保你能够理解并解释它.在这个SO答案中可以找到关于它如何工作的一个很好的解释.
*Reeaaalllyyyy慢,看到juanpa.arrivillaga的答案冷静的情节和append具有pop看一看在原位reverse上列出在约阿夫Glazner的答案来完成.
| 归档时间: |
|
| 查看次数: |
7370 次 |
| 最近记录: |