探索Python。我一直在尝试通过编写最少量的代码来提高相同的功能,以此来推动我的进步,但我希望能够分析对流程速度的理解,以及对可能知之甚少的认识,但是仍然非常有用,python关键字。就这样:
写这篇文章的最短方法是什么?
写这篇文章的最佳方法是什么才能让它处理得最快?
只是为了好玩而添加一点点,这是一种不规则但有效的方法吗?
注意:虽然它可能不是一种流行的观点,但我并不关心可读性,因为我认为这取决于某种语言的技能。
def xyFill(listObj, x, y):
for row in listObj:
x.append(row[0])
y.append(row[1])
答案 0 :(得分:5)
如果您将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)
答案 1 :(得分:2)
短代码=坏。
它曾经是好的,早在C写作的早期,真正的紧凑代码很棒。
现在一天没有!
我们编写易于阅读的代码。我们让编译器(或你的情况下的解释器)尽可能快地完成我们编写的内容。即便是Python的窥视优化器也能做到这一点。
Python非常精致且面向对象。跟着这个吧。编写要重用的代码,使用它的人可以从方法和变量的名称中知道它的作用(但不一定是它的工作原理)。
简短的密码=坏。在较低级别的语言中(因为Python绝不是一个玩具,它是一种极好的语言)我们不会为快速部件编写程序集,因为我们现在很沮丧。我们写清楚我们想要做的事情,并使用正确的算法等,不参与其余的事情。编译器可以比我们更好地分配寄存器,我们甚至不应该尝试。
Python有一个窥视孔优化器,它可以像基于堆栈的虚拟机那样获得高性能。它也有一些奇怪的前瞻和缓存。
在解释和编译的世界中, A LOT 的工作已经用于减少抽象的惩罚,因为抽象对象和代码重用=很棒的代码:)