所以根据 Python 之禅 ... 显式优于隐式 ...稀疏优于密集 ... 可读性很重要...但是 Flat 优于嵌套...那么哪个是pythonic?
val = "which is pythonic?"
print("".join(reversed(val)))
或
print(val[::-1])
我只是一名学习 Python 的 Java 程序员,所以我发现 pythonic 的东西很有趣,因为在 Java 世界 AFAIK 中没有类似物。
最佳答案
我的妻子 Anna 给 x[::-1]
取了个绰号“火星笑脸”——我主要是向她鞠躬(以及她在培训 &c 和人类心理学研究 &c 方面的长期经验) ,在判断对大多数人来说什么是简单自然的事情时,她绝对喜欢军事笑脸。 “倒着走”——比“倒过来然后再加入”的详细说明要直接和高度抽象得多!
此外,python -mtimeit
通常可以很好地判断什么是 Pythonic:顶级 Pythonistas,多年来,当然倾向于优化他们最经常需要和使用的东西,因此非常可观的性能difference 告诉你什么是语言及其顶级实践者的“顺其自然”。按照这个分数,火星笑脸轻而易举地击败了详细的规范......:
$ 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
数量级的性能差异不会留下太多怀疑的余地!-)
关于python - "".join(reversed(val)) vs val[::-1]...哪个是 pythonic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1695385/