【问题标题】:python unpacked dictionary of listpython解包列表字典
【发布时间】:2014-10-06 17:34:40
【问题描述】:
d = {
  'a': [1, 2, 3],
  'b': [4, 5, 6]
}

def magic_fun(d): 
  ??

magic_fun(d) -> 
[[('a', 1), ('a', 2), ('a', 3)],
 [('b', 4), ('b', 5), ('b', 6)]]

替换??使用 python 单行列表理解。 可行吗?

如果我这样做:

>>> [(key, value) for key, values in d.iteritems() for value in values]
[('a', 1), ('a', 2), ('a', 3), ('b', 4), ('b', 5), ('b', 6)]

但我丢失了第一级列表。一切都变平了……

PS:这对我来说并不是很有用,我可以用 for 循环来做,但我很惊讶我找不到用列表理解来做的方法......

【问题讨论】:

    标签: python dictionary list-comprehension


    【解决方案1】:
    def magic_fun(d):
        return [[(key,el) for el in value] for key,value in d.items()]
        # for key,value in d.items():
        #     element_list = []
        #     for el in value:
        #         element_list.append((key,el))
        #     yield element_list
    

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      相关资源
      最近更新 更多