python - python:如何将函数转换为 lambda 表达式?
问题描述
我有以下将列表转换为字典的函数。
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}, ....}
不是逐字迭代而是逐字符进行。
知道如何改变它吗?
解决方案
当你写
list(map(convert2Dict, takeOff_Airport))
你本质上是在表演
result = []
for key in takeOff_Airpot:
result.append(covert2Dict(key))
也就是说,您将该函数应用于字典中的covert2Dict
每个键covert2Dict
,然后将所有结果收集到一个列表中。
如果您希望您的函数对takeOff_Airport
自身进行操作,只需将其直接作为参数传递即可。map
如果您想对可迭代的每个元素执行一些操作,您只需要使用或它的亲戚。
推荐阅读
- powershell - 如何在PowerShell中使用管道输入
- c - MPFR 之类的库如何存储和操作任意精度的实数?
- sql-server - 使用从表 b 中检索到的复合键从表 a 中删除的最有效方法是什么?
- google-cloud-platform - GCP PubSub 重试退避时间
- python - Python搜索字符模式,如果存在则缩进
- javascript - TensorFlowJS 画布大小错误 - 如何显示图像?
- flutter - Flutter:如何使用 GetX 查询列表项
- linux - 如何解决“docker:来自守护进程的错误响应:OCI 运行时创建失败:无法检索 OCI 运行时错误”
- javascript - 如何使用单个 ExtJS 模型从数据库中保存、加载和删除?
- objective-c - NSAttributedString 中的慢速属性枚举