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】:

如果您同时扩展 xylistObj 是双值元组,则可以使用:

new_x, new_y = zip(*lintObj)
x.extend(new_x)
y.extend(new_y)

如果 xy 一开始是空的,我就返回 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:输出最短字符串(附完整源码)

世界上最短的时钟代码!更短的,有木有?

如何将整数转换为 Python 中最短的 url 安全字符串?

如何找到最短的堆栈移动序列以获得目标堆栈?

最短的C程序,还是会导致段错误