reversePython的str对象没有内置函数.实现此方法的最佳方法是什么?
如果提供非常简洁的答案,请详细说明其效率.例如,是否将str对象转换为其他对象等.
如何在Python中执行以下操作?
array = [0, 10, 20, 40]
for (i = array.length() - 1; i >= 0; i--)
Run Code Online (Sandbox Code Playgroud)
我需要有一个数组的元素,但从最后到开头.
所以我可以从头开始len(collection)并结束collection[0].
编辑:对不起,我忘了提到我也希望能够访问循环索引.
为什么这不适用于Python?
>>> print [0,1,0,1,1,0,1,1,1,0,1,1,1,1,0].reverse()
None
Run Code Online (Sandbox Code Playgroud)
我希望以相反的顺序取回列表.
据我了解,可以通过两种方式之一调用对象的魔术方法。首先像这样,魔术方法像任何常规方法一样被调用:
x = (1, 2, 3, 4)
print(x.__len__())
#prints 4
Run Code Online (Sandbox Code Playgroud)
其次,像这样,魔术方法被称为“特别”:
x = (1, 2, 3, 4)
print((len(x)))
#prints 4
Run Code Online (Sandbox Code Playgroud)
正如我们所见,两者是等价的。但是,当我reversed()使用第一种方式对元组调用魔术方法时,遇到了一个错误:
x = (1, 2, 3, 4)
x.__reversed__()
#causes an attribute error
Run Code Online (Sandbox Code Playgroud)
然而,调用反向方法的“特殊”方式工作得很好:
x = (1, 2, 3, 4)
reversed(x)
#returns a reversed object
Run Code Online (Sandbox Code Playgroud)
为什么会出现这种情况?我对 dunder 方法有什么误解吗?