python 代码优化

来源:互联网 发布:写小说软件 编辑:程序博客网 时间:2024/06/08 06:15
代码优化




1. 合并尽量用 join
   s = ','.join(list1)


   
2.  可以不用循环就不用循环
 
   例1:---------------------------------------------------
   valid_tags 数据为 [('漂亮',100),('美丽',150),('丑',89)]
   
   valid_tags_name = []
   for n in valid_tags:
       valid_tags_name.append(n[0])
  
   用map优化循环:   
    valid_tags_name = map(lambda x : x[0], valid_tags)

例2:---------------------------------------------------
newlist = [] 
for word in oldlist: 
   newlist.append(word.upper())

优化:
newlist = map(str.upper, oldlist)
或者
newlist = [s.upper() for s in oldlist]


3. 使用dict1.get(key) 代替 if key in k_dict \
   使用xrange 代替range \
   使用字典代替List   (字典是索引查询,速度为o(1);  list为链表查询,速度为o(n))
   
   反例:
    k = [10,20,30,40,50,60,70,80,90] 
    for i in xrange(10000): 
        if i in k:
   pass
    
优化
    
k = [10,20,30,40,50,60,70,80,90]
k_dict = {i:1 for i in k}         #将list转换为dict
for i in xrange(10000):
# if i in k_dict:
if k_dict.get(i):             #使用k_dict.get(i) 优化  if i in k_dict
print i,




4.  取交集
    反例:
list_a = [1,2,3,4,5]
ist_b  = [2,3,4,5,6]
list_c = [a for a in list_a if a in list_b]

优化:
list_a = [1,2,3,4,5]
list_b = [2,3,4,5,6]

list_c= set(list_a)&set(list_b)


5...  待续...