gpt4 book ai didi

python - 如何减少 lambda 表达式中辅助函数的使用?

转载 作者:行者123 更新时间:2023-12-05 08:21:56 29 4
gpt4 key购买 nike

在这个例子中,我从一个集合中取出字母并将它们附加到字典中,其中字母成为键,文字 1 成为每对的值。

def base_dict_from_set(s):
return reduce(lambda d,e : addvalue(1, e, d), s, dict())


def addvalue(value, key, d):
d[key] = value
return d
>>> base_dict_from_set(set("Hello World!".lower()))
{'o': 1, '!': 1, 'l': 1, 'd': 1, 'w': 1, ' ': 1, 'r': 1, 'e': 1, 'h': 1}

我想知道我是否可以以某种方式摆脱“addvalue”辅助函数并添加元素并在 lambda 函数本身中引用修改后的字典。

addvalue 本身的例程对我来说非常简单,所以我更喜欢这样的东西:

def base_dict_from_set(s):
reutrn reduce(lambda d,e : d[e] = 1, s, dict())

我在 python 方面的经验不多,而且我是从函数式编程的角度出发的。我的目标是了解 python 的功能,但我太缺乏经验,无法正确地表达和谷歌我正在寻找的内容。

最佳答案

您正在尝试做的是 dict.fromkeys 存在的原因:创建一个字典,将每个键映射到相同的常量值。

>>> dict.fromkeys("Hello World!".lower(), 1)
{'h': 1, 'e': 1, 'l': 1, 'o': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1}

无需先将字符串转换为,因为任何重复项都会被以下事件覆盖。

(如果常量值是可变的,您应该使用字典理解来确保每个键都获得其自己的可变值,而不是每个键都共享对相同可变值的引用。)

关于python - 如何减少 lambda 表达式中辅助函数的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69132206/

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