Python如何将函数参数分组并循环处理以简化重复代码?
优化重复代码:批量处理参数的方法
你可以通过两种方式简化这段重复的代码,一种是利用Python集合的自动去重特性,另一种是将参数打包后循环处理,具体实现如下:
方法一:利用集合(最简洁高效)
集合会自动过滤重复元素,直接将参数转为集合后取长度即可,代码极简:
def num_unique(v1, v2, v3): return len({v1, v2, v3})
方法二:循环统一处理参数
如果想保留列表的判断逻辑,只需把三个参数打包成可迭代对象(比如元组),再遍历处理每个元素,避免重复代码:
def num_unique(v1, v2, v3): vlist = [] # 将参数打包,通过循环逐一处理 for v in (v1, v2, v3): if v not in vlist: vlist.append(v) return len(vlist)
进阶优化:支持任意数量参数
如果希望函数能处理更多输入值,可以用可变参数*args来接收任意数量的参数,扩展性更强:
def num_unique(*args): vlist = [] for v in args: if v not in vlist: vlist.append(v) return len(vlist) # 调用示例 print(num_unique("apple", "banana", "apple")) # 输出2 print(num_unique("hello")) # 输出1
内容的提问来源于stack exchange,提问作者yyj2001
相关产品推荐
相关产品推荐

