Scorelife_disct={'scorelife41': ['c', 'hindi', 'sql', 'scala', 'love'],
'scorelife42': ['c', 'sql', 'english', 'Cat', 'html', 'cPlus', 'love'],
'scorelife43': ['c', 'Cat', 'friend', 'love']}
User_life_disct ={'scorelifeLife1': ['c', 'hindi', 'python', 'scala', 'graphics'],
'scorelifeLife10': ['c', 'hindi', 'perl'],
'scorelifeLife11': ['hindi', 'perl', 'spark']}
import collections
d = collections.defaultdict(dict)
from __future__ import division
for userid in Scorelife_disct:
#print userid
for life_disct in User_life_disct:
u1= Scorelife_disct[userid]
u2= User_life_disct[life_disct]
k1=len(set(u1)&set(u2))/len(set(u1)|set(u2))
#print life_disct
#print k1
d[userid][life_disct] = k1
print d
dict(d)
Выход:Оптимизировать Python Панда код
{' scorelife41': {' scorelifeLife1': 0.42857142857142855,
' scorelifeLife10': 0.3333333333333333,
' scorelifeLife11': 0.14285714285714285 }}
Я использую два словарь питона с Жаккаром сходством каждого списка словаря, но моя программа занимает слишком много времени для огромного количества данных. Как уменьшить проблему временной сложности (хотя выход является правильным), чтобы он работал, не занимая много времени?
Как это использовать Панды? – James