CODE‎ > ‎Python‎ > ‎

效能提升

少用all = str0 + str1 + str2 + str3 
而用 all = '%s%s%s%s' % (str0, str1, str2, str3)

============================================
import string 
newL = [] 
for s in l: newL.append( string.upper(s) )
可以省掉for的循環
import string 
newL = map (string.upper, l)

============================================
l = ['I', 'You', 'Python', 'Perl', ...]  
計算每個詞出現的次數
count = {} 
for s in l: 
    if not count.has_key(s): count[s] = 0 
    else: count[s] += 1
改用 try
count ={} 
for s in l: 
    try: count[s] += 1 
    except KeyError: count[s] = 0
但如果有很多異常則另當別論

============================================
def s():
    os.chdir(
'1')
    list 
= os.listdir('.')
    map(os.remove,list)
    
print 'done'
if __name__=='__main__':
    cProfile.run(
's()',)

===> 0.053 cpu time

def s():
    os.chdir(
'1')
    list 
= os.listdir('.')
    [os.remove(item) 
for item in list]
    
print 'done'
if __name__=='__main__':
    cProfile.run(
's()',)

===> 0.523 cpu time


Comments