【发布时间】:2019-03-22 14:45:07
【问题描述】:
我在 GCSE 学习计算机科学。我可以相当自信地编写代码,但我无法让我的代码更有效率。
例如,music = [[a,s] for a,s in (x.split(':') for x in open("conf/music.txt").read().split("\n"))] 这行对我来说似乎很有效,但显然我和其他人有不同的想法。
我想我要问的是:扩展我的代码使其更易于阅读通常更好吗,即使因此创建了更多变量?
任何帮助将不胜感激,谢谢:)
编辑: 这是(下)更好的解决方案吗?
with open("conf/music.txt") as f:
fr = f.read()
e = fr.split("\n")
fl = [[a,s] for a,s in (x.split(":") for x in e)]
再次感谢任何帮助。谢谢。
【问题讨论】:
-
扩展代码行不会对您造成太大影响。添加一两行是线性的,最终不会有太大关系。通常,当谈到效率时,我们正在考虑迭代大型数据集或类似的东西,您可以通过减少遍历对象的次数来优化。查看 Big O 效率,这可能会为您解决问题。
-
为什么你认为你关于效率意味着什么的假设被你所写的代码的不同属性所反驳?
-
此外,打开文件而无法控制何时关闭是一个很大的禁忌
-
我不认为您编写的代码行数与它消耗多少内存或它的效率有什么关系。然而,使用正确的数据结构和算法非常有效。也就是说,对于人类来说,可读的代码比看起来聪明的代码要好得多。
标签: python python-3.x code-formatting memory-efficient