我试图弄清楚如何创建一个带有百分比参数的函数,以输出嵌套列表中出现的项目的百分比。
例如:
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)
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%}'