将dict转换为列表列表

2024-06-25 22:56:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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>>,
 ...]

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


Tags: lambda代码informainitemsfunctionlist
2条回答

不需要使用lambdas:

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

甚至更短:

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

lambda创建一个匿名函数。这意味着您已经生成了一个函数列表,其中包含两个参数作为输入(这里是xy),并返回一个列表[x,y]。在您的方法中甚至没有考虑kv。你知道吗

使用map也可以:

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

请注意,在python3中,这将构建一个生成器(因此,正如Willem comment所说,最好在map调用周围使用list(),以便在调用时获取值)。你知道吗

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

相关问题 更多 >