我想在2D数组中查找对的频率。输入示例如下:
list_of_items = [[12,14,18],[12,19,54,89,105],[ 14, 19],[54, 88 ,105,178]]
Run Code Online (Sandbox Code Playgroud)
预期输出如下:
(12,14):1
(12,18):1
(12,19):1
(12,54):1
(12,88):0
.
.
.
(54,105):2
.
.
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,但我认为这不是最佳解决方案:
number_set = [ 12, 14, 18,19,54,88,89 , 105, 178]
def get_frequency_of_pairs(list_of_items, number_set):
x=1
combination_list = []
result = {}
for i in number_set:
for j in range(x,len(number_set)):
combination_list = combination_list +[(i,number_set[j])]
x = x+1
for t in combination_list:
result[t]=0
for t in combination_list:
for items in list_of_items:
if( set(t).issubset(items) ):
result[t]=result[t]+1
return result
Run Code Online (Sandbox Code Playgroud)