繁体   English   中英

将字典转换为列表列表

[英]convert a dict to a list of lists

我有一个defaultdict看起来像...

defaultdict(int,
              {" u'CAMILLE'": 10,
               " u'SAHARA'": 1,
               " u'JEREMIAH'": 114,
               " u'EDISON'": 9,
               ...}

我需要类似...

[[u'CAMILLE', 10],
 [u'SAHARA', 1],
 [u'JEREMIAH',114],
 [u'EDISON', 9],
 ...]

firstnames = [lambda x,y:list(x,y) for k,v in firstnames.items()]

firstnames = [lambda x,y:[x,y] for k,v in firstnames.items()]

生产

[<function __main__.<lambda>>,
 <function __main__.<lambda>>,
 <function __main__.<lambda>>,
 <function __main__.<lambda>>,
 ...]

这显然不是我想要的。 如何更正此代码?

无需使用lambda

firstnames = [[k,v] for k,v in firstnames.items()]

甚至更短:

firstnames = [list(t) for t in firstnames.items()]

lambda创建一个匿名函数。 这意味着您已经生成了一个函数列表,该函数将两个参数(此处为xy )作为输入并返回列表[x,y] 您的方法中甚至没有考虑kv

使用地图也可以:

firstnames = map(list, firstnames.items())

请注意,在python3中,这将构建一个生成器(因此,如Willem评论所言,最好在map调用周围直接使用list() ,以便在调用时获取值)。

firstnames = list(map(list, firstnames.items()))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM