示例:在python中键入字符串列表真的很烦人:
["January", "February", "March", "April", ...]
我经常做这样的事情来节省我必须在整个地方键入引号:
"January February March April May June July August ...".split()
那些花了相同的时间,我输入了2个月的数量.另一个例子:
[('a', '9'), ('4', '3'), ('z', 'x')...]
代替:
map(tuple, "a9 43 zx".split())
这花费的时间少得多.
代码通常被多次读取,并且只写一次.
除非您正在做一些丢弃代码,否则以牺牲可读性为代价来节省写入时间通常不是一个好的选择.
第二个版本不太明确,您需要一些时间来了解代码正在做什么.我们只是谈论变量实例化,而不是算法!
一个好的文本编辑器可以使这些事情成为无问题.例如,我可以在我的代码中键入以下行:
print `"January February March April May June July August September October November December".split()`
然后使用键序列V:!python
我可以通过python解释器运行该行,输出如下:
['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
我正在使用Vim作为我的例子,但我确信这对于Emacs,TextMate等同样容易.
在一个相当聪明的编辑器中,您可以:
选择感兴趣的行,
插入替换件(
由
第一个前的" "),
选中选中的行复选框,
点击全部替换,
bam ..你做完了.
可读且易于打字......尊重编辑的力量!
总的来说,我认为这是一个坏主意.第一个例子并不糟糕(它可以替代python缺乏qw),但第二个例子更难以理解.特别是,我认为这种事情非常单一,但在编写Python代码时无论如何都不合适.代码可读性比节省编写代码的时间要重要得多.如果您真的需要很多数据来进行硬编码,请编写一个脚本来为您生成数据.