共回答了13个问题采纳率:100%
#先求最小公倍数,再整形
dic = {'sports' :{'s.basketball':['a', 'b', 'c', 'd'], 's.football':['aa', 'bb', 'cc', 'dd'] },
'music':{'m.juzz':['e', 'f', 'g'], 'm.pop':['ee', 'ff', 'gg']}}
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
return a * b / gcd(a, b)
myLcm = 1#最小公倍数
for k in dic:
for k2 in dic[k]:
myLcm = lcm(len(dic[k][k2]), myLcm)
newDiv = {}
for k in dic:
newDiv[k] = {}
for k2 in dic[k]:
newDiv[k][k2] = []
l = len(dic[k][k2])
for v in dic[k][k2]:
for i in range(myLcm / l):
newDiv[k][k2].append(v)
print newDiv
1年前
10