代码优化
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]
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... 待续...