gpt4 book ai didi

python - 在该列表上连续​​调用函数来构建列表的惯用方法

转载 作者:行者123 更新时间:2023-11-28 23:01:18 26 4
gpt4 key购买 nike

用一个简洁的标题来解释我的问题有点困难,所以这里是解释。我有一个类列表,这些对象都包含它们自己的数据集。我遇到的问题是我尝试遍历这些对象并过滤掉列表中当前对象之前的对象之一中使用的数据。代码片段如下所示:

objs = [list-of-objects]
used = set([])
for obj in objs:
used = used.union(obj.callSomeFunc(used))

那个 callSomeFunc 成员返回它拥有的一组数据,这些数据与当前使用的数据集不相交。

此代码有效,但我不太喜欢它,而且我无法相信没有更好的方法来执行此操作。

最佳答案

我唯一要改变的是使用 set.update() 而不是 set.union():

objs = [list-of-objects]
used = set()
for obj in objs:
used.update(obj.callSomeFunc(used))

可以使用reduce(),但我认为这会损害可读性。

编辑:这是使用reduce()的代码:

used = reduce(lambda used, obj: used.union(obj.callSomeFunc(used)), objs, set())

关于python - 在该列表上连续​​调用函数来构建列表的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11225726/

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