"".join(reverse(val))vs val [:: - 1] ...这是pythonic?

non*_*tor 14 python

所以根据PythonZen ... 显式优于隐式 ... 稀疏优于密集 ... 可读性计数 ......但是再次Flat优于嵌套 ...那么哪个是pythonic

val = "which is pythonic?"
print("".join(reversed(val)))
Run Code Online (Sandbox Code Playgroud)

要么

print(val[::-1])
Run Code Online (Sandbox Code Playgroud)

我只是一个学习Python的Java程序员,所以我发现这个pythonic的东西很有趣,因为Java世界AFAIK中没有模拟.

Ale*_*lli 45

我的妻子安娜绰号x[::-1]"火星笑脸" - 我主要向她求助(以及她在训练中的长期经验,以及人类心理学和c的研究),当谈到判断大多数人的容易和自然时,她绝对喜欢军事笑脸."只是向后走吧" - 比"逆转然后再加入"的详细规范更具直接性和高抽象性!

此外,python -mtimeit对于Pythonic来说,通常是一个很好的判断:多年来,顶级Pythonistas当然倾向于优化他们最常需要和使用的东西,因此非常实质的性能差异会告诉你语言的"粗糙"和它的顶级从业者.通过这个分数,火星的笑脸击败了详细的规格......

$ python -mtimeit '"".join(reversed("hello there!"))'
100000 loops, best of 3: 4.06 usec per loop
$ python -mtimeit '"hello there!"[::-1]'
1000000 loops, best of 3: 0.392 usec per loop
Run Code Online (Sandbox Code Playgroud)

数量级的性能差异只是不要留下太大的怀疑空间! - )