gpt4 book ai didi

python - 如何设计Python过滤器函数以便能够使用加法属性进行排序?

转载 作者:太空宇宙 更新时间:2023-11-03 16:33:33 25 4
gpt4 key购买 nike

我正在创建不同的过滤器作为我的 python 库的一部分。我希望每个过滤器都是 python 模块中的一个函数。

def filterB(num):
return num == 'B'

def filterA(str):
return str == 'A'

每个过滤器都可以导入并添加到列表中。

import filters

my_list = [filters.filterA, filters.filterB]

现在,所有这些都可以作为 ifilter 应用到我的列表中。

my_list = ['A', 'B' , 'C' , 'D']

def nFilter(filters, my_list):
for f in filters:
my_list = ifilter(f, my_list)
return my_list

现在,我还希望每个过滤器都有一个顺序号,以便可以根据特定顺序应用过滤器。我将如何实现这一点,因为 ifilter 只需要函数。

附注我考虑过创建抽象过滤器类并将其连接到我的特定过滤器类。我只是在寻找更好的设计方法来解决这个问题?所以任何意见都会有帮助。

最佳答案

如果我理解正确的话:让你的过滤器列表包含 的元组,并以排序的方式迭代它们。

import filters

filter_list = [(2, filters.filterA), (1, filters.filterB)]

data_list = ['A', 'B' , 'C' , 'D']

def nFilter(filters, my_list):
for _, f in sorted(filters):
my_list = ifilter(f, my_list)
return my_list # or list(my_list) if you actually want a list

关于python - 如何设计Python过滤器函数以便能够使用加法属性进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37420323/

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