一些實用的小技巧,可減少多餘的動作
- Swap
- 讀dict時避免判斷key的存在
- 尋找最小值和對應位置
- 讀取檔案
- Python使用三元式
- Dict成員是複雜類別時的初使用
temp = x
x = y
y = temp
#Python建議使用
x, y= y, x
#一般寫法
if 'key' in d: print d['key']
else: print 'not find'
#建議寫法
print d.get('key', 'not find')
#一般寫法
mval, mpos = MAX, 0
for i in xrange(len(s)):
if s[i] < mval: mval, mpos = s[i], i
#建議寫法
mval, mpos = min([ (s[i], i) for i in xrange(len(s)) ])
line = ''
fp = open('text.txt', 'r')
for line in fp: text += line
#建議寫法1
text = string.join([ line for line in open('text.txt')], '']
#建議寫法2
text = ''.join([ line for line in open('text.txt')])
#建議寫法3
text = file('text.txt').read()
if n >= 0: print 'positive'
else: print 'negitive'
#建議寫法1, 但後面式子為None會有問題
print (n >= 0) and 'positive' or 'negitive'
#建議寫法2, 解決了None的問題
print (n >= 0 and ['positive'] or ['negitive])[0]
#建議寫法3
print ('negitive', 'positive')[n >= 0]
if not y in d: d[y] = { }
d[y][x] = 3
#建議寫法
d.setdefault(y, { })[x] = 3
#如果為list時
d.setdefault(key, []).append(val)