Python–列表中的累计行频率
给定 Matrix,任务是编写一个 Python 程序来获取该行的总出现次数。
输入 : test_list = [[10,2,3,2,3],[5,5,4,7,7,4],[1,2],[1,1,2,2,2,2]],ele_list = [1,2,7] 输出 : [2,2,2,5] 解释 : 2 在第 1 行出现 2 次,以此类推。
输入 : test_list = [[10,2,3,2,3],[5,5,4,7,7,4]],ele_list = [1,2,7] 输出 : [2,2] 解释 : 2 在第 1 行出现 2 次,以此类推。
在这种情况下,我们执行获取所有行的所有频率的任务,然后从行中检查所需元素的列表出现,sum()用于获取行中提取频率的总和。
Python 3
# Python3 code to demonstrate working of
# Cumulative Row Frequencies
# Using Counter() + list comprehension
from collections import Counter
# initializing list
test_list = [[10, 2, 3, 2, 3],
[5, 5, 4, 7, 7, 4],
[1, 2], [1, 1, 2, 2, 2]]
# printing original list
print("The original list is : " + str(test_list))
# initializing ele_list
ele_list = [1, 2, 7]
# getting each rows counter
freqs = [Counter(ele) for ele in test_list]
# getting summation of present values
res = [sum([freq[wrd] for wrd in ele_list if wrd in freq]) for freq in freqs]
# printing result
print("Cumulative Frequencies : " + str(res))
输出:
原始列表为:[[10,2,3,2,3],[5,5,4,7,7,4],[1,2],[1,1,2,2,2]] 累计频率:[2,2,2,5]
方法二:使用 求和() +列表理解
在本文中,我们使用 sum()执行获取求和的任务,列表理解用于检查检查列表中的元素并遍历行。
Python 3
# Python3 code to demonstrate working of
# Cumulative Row Frequencies
# Using sum() + list comprehension
# initializing list
test_list = [[10, 2, 3, 2, 3],
[5, 5, 4, 7, 7, 4],
[1, 2], [1, 1, 2, 2, 2]]
# printing original list
print("The original list is : " + str(test_list))
# initializing ele_list
ele_list = [1, 2, 7]
# getting summation
res = [sum(ele in ele_list for ele in sub) for sub in test_list]
# printing result
print("Cumulative Frequencies : " + str(res))
输出:
原始列表为:[[10,2,3,2,3],[5,5,4,7,7,4],[1,2],[1,1,2,2,2]] 累计频率:[2,2,2,5]
版权属于:月萌API www.moonapi.com,转载请注明出处