【关于Python字典里的value问题是有{'a&-查字典问答网
分类选择

来自陈文佳的问题

  【关于Python字典里的value问题是有{'a':[1,2,3,4],'b':[11,22,33]},即a中有4个值,b中有3个值要弄成{'a':[1,1,1,2,2,2,3,3,3,4,4,4],'b':[11,11,11,11,22,22,22,22,33,33,33,33]}a和b中都要有3*4=12个值,就是每个value的】

  关于Python字典里的value

  问题是有{'a':[1,2,3,4],'b':[11,22,33]},即a中有4个值,b中有3个值

  要弄成{'a':[1,1,1,2,2,2,3,3,3,4,4,4],'b':[11,11,11,11,22,22,22,22,33,33,33,33]}

  a和b中都要有3*4=12个值,就是每个value的长度要一样

1回答
2020-11-16 04:23
我要回答
请先登录
廖萃淇

  #先求最小公倍数,再整形

  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

2020-11-16 04:27:24

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •