python的一些技巧
学过C言语的同窗,或者看过《C言语从入门到放弃》这本书的同窗一定不会对“三目操作符”这种画面感十足的操作符感到生疏。
但是,直到我完成python小学一年级课程的时分才发现原来python也有相似的东西。比方:
def foo(val):
if val == 42:
return "you are a programmer!"
else:
return "you are a manong!"
或者你也能够这样写:
def foo(val):
return "you are a programmer!" if val == 42 else "you are a manong!"
讲道理的话,这个应该是一个坑,而非装逼技巧。由于撸主当年是从C++党转学python的,刚开端写代码总喜欢这样:
if isinstance('c', CPlusPlus):
assert(isinstance('python', CPlusPlus)
更变态的时分以至这样:
assert(type('C++') == CPlusPlus)
比方如下一个简单的例子:我需求将一个字符串列表中一切满足包含“result"字段的字符串挑选出来。
低年级的同窗可能会这么做:
def foo(xxx):
result_list = list()
for ele in org_list:
if "result" in ele:
result_list.append(ele)
BUT,这样做“一点都不酷!”。要酷还得靠装逼:
result_list = filter(lambda ele : "result" in ele, org_list)
不信的话,你就去试试咯:
map(lambda ele : ele + 1, (1, 2, 3, 4))
reduce(lambda x,y:x+y, range(3))