我根据各种情况维护一套需要逐渐缩小的电视机。

例如:

acceptable = read_input()
acceptable.rank_by_x()
acceptable = set(filter(is_rank_x_top_100, acceptable))
acceptable.rank_by_y()
acceptable = set(filter(is_rank_y_top_10, acceptable))


它可以工作,但是set(filter())构造看起来很难看。有更好的方法吗?还是仅将子集设置为添加具有相同功能的方法更好?

最佳答案

您可以将此折叠为:

acceptable = set()
#...
acceptable = set(filter(is_rank_y_top_10,
                        filter(is_rank_x_top_100, acceptable)))


或使用理解:

acceptable = set()
#...
acceptable = set(i for i in acceptable
                 if is_rank_x_top_100(i) and is_rank_y_top_10(i))

关于python - 设置(过滤器)重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8498381/

10-13 07:14