※ 引述《gbllggi (gbllggi)》之铭言:
: 借标题,想问问大家的习惯
: 刚学pyhton不久,想请问大家有什么建议的习惯要养成呢?
: 例如可以简化成一行的for loop该尽量写成一行吗?
说到这个单行 for loop,我到今年初才知道,有些情况下
单行反而比多行更好读
举例来说,如果要找某个 list item 是否符合某个条件︰
found = False
for item in list:
if exp(item):
found = True
break
if found:
# do thing
可以写成︰
if any(exp(item) for item in list):
# do thing
而且 comprehension 有它自己的 scope,所以不必考虑变量被覆蓋的问题
dict, list, set 配合 comprehension,再加上 any, all, filter, map 函式
几乎所有单层的 for 都能改成单行
我觉得 python 还可以考虑加上几个函式
first(iterable, cb) # return first item that cb(item) is True
each(iterable, *cb) # invoke each cb for all items
reduce(cb, *iterable) # invoke cb with previous cb result for all items
: 或是一个function只处理一件事情?
: 还有以前已经写好的code但有点丑、或乱,会为了维护方便还有容易分享
: 一直去更新它吗?还是code能跑就好,等到要更新再说?
现在看觉得有点丑或乱,明年再看就完全不知道自己在干麻了(真实经验)