我想用python优化代码以减少时间

我想用python优化代码以减少时间,python,nested-loops,execution-time,Python,Nested Loops,Execution Time,我得到了以下Python代码: newArr=[] 对于范围(0,len(客户))内的i: 总和=1 对于范围内的j(i+1,len(客户)): 如果客户[i]==客户[j]: 总和+=1 总和=(总和/长度(客户))*100 如果总和>=5: newArr.append(客户[i]) newArr=集合(newArr) newArr=列表(newArr) newArr.sort() 返回纽瓦尔 我能做些什么来优化代码并减少执行时间?据我所知,一旦您发现某一类型的客户包含超过5%的您要追加的客

我得到了以下Python代码:

newArr=[]
对于范围(0,len(客户))内的i:
总和=1
对于范围内的j(i+1,len(客户)):
如果客户[i]==客户[j]:
总和+=1
总和=(总和/长度(客户))*100
如果总和>=5:
newArr.append(客户[i])
newArr=集合(newArr)
newArr=列表(newArr)
newArr.sort()
返回纽瓦尔

我能做些什么来优化代码并减少执行时间?

据我所知,一旦您发现某一类型的客户包含超过5%的您要追加的客户,然后返回(排序)。因此,按类型统计客户并只返回那些通过该阈值的客户就足够了-

from collections import Counter

customers_counter = Counter(customers)
threshold = int(5 * len(customers)/100 -1)

output_list = []
customers_counter = {k:v for k, v in customers_counter.items() if v > threshold}

return sorted(customers_counter.keys())

据我所知,一旦你发现一种类型的客户由超过5%的你想要追加的客户组成,然后返回(排序)。因此,按类型统计客户并只返回那些通过该阈值的客户就足够了-

from collections import Counter

customers_counter = Counter(customers)
threshold = int(5 * len(customers)/100 -1)

output_list = []
customers_counter = {k:v for k, v in customers_counter.items() if v > threshold}

return sorted(customers_counter.keys())

客户是由用户提供的列表。您是否要计算重复的数量?尝试使用
集合(客户)
,这将只包含唯一的值。不,我想计算每种类型客户的数量@zvone那么为什么返回
newArr
?看看这基本上是为了实现这一点,而且速度更快。客户是用户给出的列表。您是否尝试计算重复的数量?尝试使用
set(customers)
,它将只包含唯一的值。不,我想计算每种类型的客户@zvone的数量。那么,为什么返回
newArr
?看看这基本上是用于此目的的,而且速度更快。