Python - 最短的编写方式/最具创意的编写方式/最快的代码处理[关闭]
Posted
技术标签:
【中文标题】Python - 最短的编写方式/最具创意的编写方式/最快的代码处理[关闭]【英文标题】:Python - Shortest way to write / Most creative way to write / Fastest code to process [closed] 【发布时间】:2013-11-28 14:38:45 【问题描述】:探索 Python。我一直在尝试通过编写最少的代码来始终产生相同的功能,以此来推动我的进步,但我正在寻求对流程速度的理解以及对可能鲜为人知的认识,但是还是很有用的,python关键字。因此:
写这个的最短方法是什么?
编写此代码的最佳方法是什么以使其处理速度最快?
只是为了好玩,还有什么不规则但有效的写法?
注意:虽然它可能不是一个流行的观点,但我并不关心可读性,因为我认为这是一个依赖于语言技能的相对因素。
def xyFill(listObj, x, y):
for row in listObj:
x.append(row[0])
y.append(row[1])
【问题讨论】:
as I feel this is relative factor dependent upon ones skill in a language.
有人需要在 6 个月后阅读他自己的代码...
“虽然它可能不是一个流行的观点,但我不关心可读性......”你是对的。这不会是一个流行的观点。 :-)
这不是Code Review的话题吗?
@UmNyobe 完全正确,请参阅我的回答。希望他能看懂!
"" @qwrrty 我读到那个并想“废话,我们必须修复他!”
【参考方案1】:
如果您同时扩展 x
和 y
且 listObj
是双值元组,则可以使用:
new_x, new_y = zip(*lintObj)
x.extend(new_x)
y.extend(new_y)
如果 x
和 y
一开始是空的,我就返回 zip(*lintObj)
的输出,然后让函数的调用者解决这个问题:
def xyFill(lintObj):
return zip(*lintObj)
x, y = xyFill(some_list)
【讨论】:
【参考方案2】:短代码 = 错误。
它曾经很好,在 C 的早期,编写真正紧凑的代码很棒。
现在不!
我们编写易于阅读的代码。我们让编译器(或您的情况下的解释器)尽可能快地完成我们编写的工作。甚至 Python 的窥视孔优化器也能很好地做到这一点。
Python 是非常漂亮的面向对象的。就这样吧。编写可重用的代码,让使用它的人仅从方法和变量的名称就可以知道它的作用(但不一定是它的工作原理)。
简短的紧凑代码 = 不好。在低级语言中(因为 Python 绝不是玩具,它是一门极好的语言)我们不会为快速部件编写汇编,因为我们现在对此很烂。我们清楚地写下我们想要做的事情,并使用正确的算法等,不要参与其余的事情。编译器可以比我们更好地分配寄存器,我们甚至不应该尝试。
Python 有一个窥视孔优化器,可以为它带来与基于堆栈的虚拟机一样的高性能。它还有一些奇怪的前瞻和缓存。
在解释和编译的世界中大量的工作已经投入到减少抽象的惩罚上,因为抽象对象和代码重用 = 伟大的代码 :)
【讨论】:
@Robert 我希望你支持、悔改和接受。 :p以上是关于Python - 最短的编写方式/最具创意的编写方式/最快的代码处理[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
ZZNUOJ_用C语言编写程序实现1139:输出最短字符串(附完整源码)