[英]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
创建一个匿名函数。 这意味着您已经生成了一个函数列表,该函数将两个参数(此处为x
和y
)作为输入并返回列表[x,y]
。 您的方法中甚至没有考虑k
和v
。
使用地图也可以:
firstnames = map(list, firstnames.items())
请注意,在python3中,这将构建一个生成器(因此,如Willem评论所言,最好在map调用周围直接使用list()
,以便在调用时获取值)。
firstnames = list(map(list, firstnames.items()))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.