【发布时间】:2020-02-26 23:31:49
【问题描述】:
我有以下将列表转换为字典的函数。
def convert2Dict(item_list):
d = {}
for name in item_list:
d.setdefault(name,0)
d[name] += 1
return (d)
当我传递如下列表时:
takeOff_Airport = convert2Dict(takeOff_Airport)
我得到一个像这样的字典:
{'LPPD': 4, 'DAAE': 1, 'EDDH': 16, ...... }
如果我尝试构建如下地图函数:
list(map(convert2Dict, takeOff_Airport))
我明白了:
[{'L': 1, 'P': 2, 'D': 1}, {'D': 1, 'A': 2, 'E': 1}, ....}
这不是逐字迭代而是逐字符进行。
知道如何改变它吗?
【问题讨论】:
-
看起来你的
convert2Dict函数最好用collections.Counter代替 -
我看不出这与 lambda 有什么关系。一个 lambda 函数不能做任何
def函数不能做的事情。 -
由于代码中的其他部分而引发错误,需要按照它的呈现方式。
-
lambda 和这个问题有什么关系?
-
你也没有提供minimal reproducible example。
标签: python python-3.x lambda