字符串在嵌套列表中的出现百分比[关闭]

问题描述 投票:0回答:1

我试图弄清楚如何创建一个带有百分比参数的函数,以输出嵌套列表中出现的项目的百分比。

例如:

A = [['A', 'B', 'C'],['F'],['A', 'B'], ['C', 'A'], ['F', 'A', 'B']]

some_function(A, percent_param = 50%)

结果将显示类似:

A = 80%B = 60%

每个列表都将像一个集合,并且将具有唯一的元素/项目。因此,我需要计算每个集合中项目的数量,然后除以嵌套列表的数量。然后使用该参数作为截止值以显示项目。

更新

澄清这是我到目前为止所拥有的。我不想重复这些内容

XX = [['A', 'B', 'C'],['F'],['A', 'B'], ['C', 'A'], ['F', 'A', 'B']]

def myfunction(XX, top_percent):

    list_length = len(XX)

    collect_items = []

    for one_list in XX:

        for item in one_list:

             Number_of_occurances = sum(x.count(item) for x in XX)

             if (Number_of_occurances/list_length)*100 >= top_percent:

                print(item, " :", (Number_of_occurances/list_length)*100)

myfunction(XX, top_percent = 60)
python nested-lists
1个回答
0
投票
您可以做类似的事情:

def some_function(A, letter): return sum(100 for l in A if letter in l)/len(A) some_function(A, 'A') # 80.0 some_function(A, 'B') # 60.0

要格式化结果并删除小数,可以添加:

def some_function(A, letter): return f'{sum(100 for l in A if letter in l)//len(A)}%' some_function(A, 'A') # 80%

或者正如@olvin指出的,我们可以使用类型说明符进一步格式化:

def some_function(A, letter): return f'{sum(1 for l in A if letter in l)/len(A):.0%}'

© www.soinside.com 2019 - 2024. All rights reserved.