互联网科技

想要让你的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")

其实编程就是一个熟能生巧的过程,但是掌握基本的用法了这些之后,离进阶还远远不够,我们需要进行第二轮实战项目!

上一篇 下一篇

猜你喜欢

热点阅读