初學python,以此題練習,不求財富。
#?-*-?coding:?utf-8?-*-dic?=?{'a':[1,2,3,4],?'b':[11,22,33]}
def?gcd(m,?n):
'''?求兩個數的最大公約數?(greatest?common?divisor)?'''
return?m?if?n?==?0?else?gcd(n,?m?%?n)
#三元表達式格式:true_part?if?condition?else?false_part
def?lcm(m,?n):
'''?求兩個數的最小公倍數?(least?common?multiple)?'''
return?(m?*?n)?/?gcd(m,?n)
lsLen?=?[len(dic['a']),?len(dic['b'])]
lcmRet?=?lcm(lsLen[0],?lsLen[1])
dicMultiple?=?{'a':?lcmRet?/?lsLen[0],?'b':?lcmRet?/?lsLen[1]}
dicRet?=?{'a':[],?'b':[]}
for?key?in?dic:
for?elem?in?dic[key]:
for?n?in?range(dicMultiple[key]):
dicRet[key].append(elem)
print?dicRet