有什么办法可以让这个功能更快

sha*_*dam -1 python loops list-comprehension

我正在编写这个函数,首先我使用的是循环。循环需要时间,因为我尝试了列表理解。它没有用。此功能允许 10 秒。请检查一下。该函数返回公司的排序列表,其中公司的比率为 5% 或更高。

def mostActive(customers):
    # Write your code here
    tot = len(customers)
    set_cust = set(customers)
    cust_dict = {i: customers.count(i)/tot for i in set_cust}
    cus_list = [i for i in list(cust_dict) if cust_dict[i] >= 0.05]
    return sorted(cus_list)
Run Code Online (Sandbox Code Playgroud)

样本输入和输出

Omega
Alpha
Omega
Alpha
Omega
Alpha
Omega
Alpha
Omega
Alpha
Omega
Alpha
Omega
Alpha
Omega
Alpha
Omega
Alpha
Omega
Beta
Run Code Online (Sandbox Code Playgroud)

预期输出:

Alpha
Beta
Omega
Run Code Online (Sandbox Code Playgroud)

sus*_*nth 6

或者,您也可以使用 collections.Counter

from collections import Counter

tot = len(customers)
[k for k, v in Counter(customers).items() if (v / tot >= 0.05)]
Run Code Online (Sandbox Code Playgroud)