想要让你的Python功力在短时间内翻倍,那么你该刷题了!
2019-03-03 本文已影响10人
919b0c54458f
刷题的实战技巧提高
1).比如会用复杂的容器,数据结构去处理问题
from collection import defaultdict 而不是只用简单的list,dict
d=defaultdict(list)
d['a'].append(1)
d['a'].append(2)
print (list(d.items()))
2).比如大家统计列表里面的个数的时候会用
from collections import Counter
学会用Counter,而不再是用for循环去一个一个判断
比如大家写if/else的时候会用 return 'aa' if 'a'=='b' else 'bb'
比如大家在玩字典的时候,会通过d.get('xxx',''),而不是直接d['xx']
3).比如推倒列表里面含多重逻辑判断
print ([ n for n in range(1,10) if n%2==0])
print ([ n if n >3 else 'x' for n in range(1,10) if n%2==0])
4).更长见识的是,比如
print (False==0) 是True
print (0.0==0) 是True
5).对正则的处理有更上一层楼,比如
import re
patt = r'(<.*>)|(\+)|(\/)'
re.sub(patt,'',s)
re.findall(patt,s)
6).会使用了Any和All这样的技巧性用法
any(str(number).startswith(str(start)) for start in vendor[1]
7).学会更老练的return写法
def get_issuer(number):
s = str(number)
return ("AMEX" if len(s)==15 and s[:2] in ("34","37") else
"Discover" if len(s)==16 and s.startswith("6011") else
"Mastercard" if len(s)==16 and s[0]=="5" and s[1] in "12345" else
"VISA" if len(s) in [13,16] and s[0]=='4' else
"Unknown")
其实编程就是一个熟能生巧的过程,但是掌握基本的用法了这些之后,离进阶还远远不够,我们需要进行第二轮实战项目!