gpt4 book ai didi

python - 使用 Python Lambda 的(键,值)对

转载 作者:行者123 更新时间:2023-12-01 03:47:01 24 4
gpt4 key购买 nike

我正在尝试解决一个简单的字数统计问题,并试图弄清楚是否可以通过专门使用映射、过滤器和归约来完成。

以下是 wordRDD 的示例(用于 Spark 的列表):

myLst = ['cats', 'elephants', 'rats', 'rats', 'cats', 'cats']

我需要的只是计算单词数并以元组格式呈现:

counts = [('cat', 1), ('elephant', 1), ('rat', 1), ('rat', 1), ('cat', 1)]

我尝试使用简单的map()和lambdas:

counts = myLst.map(lambdas x: (x, <HERE IS THE PROBLEM>))

我可能语法错误或者可能感到困惑。P.S.:这不是重复的问题,因为其余答案使用 if/else 或列表理解给出建议。

感谢您的帮助。

最佳答案

你根本不需要map(..)。您只需使用 reduce(..)

即可做到这一点
>>> def function(obj, x):
... obj[x] += 1
... return obj
...
>>> from functools import reduce
>>> reduce(function, myLst, defaultdict(int)).items()
dict_items([('elephants', 1), ('rats', 2), ('cats', 3)])

然后您可以迭代结果。

<小时/>

但是,有更好的方法:查看 Counter

关于python - 使用 Python Lambda 的(键,值)对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38835636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com