Skip to main content
 首页 » 编程设计

python之无缝处理可迭代和不可迭代

2025年05月04日6powertoolsteam

你能告诉我如何优化以下代码吗?

def f(y, list_or_elem): 
  if getattr(list_or_elem, '__iter__'): 
    y = max(y, *list_or_elem) 
  else: 
    y = max(y, list_or_elem) 

请您参考如下方法:

最好的优化是避免将“列表或单个元素”作为参数这样的愚蠢行为。但是,如果您坚持,最好使用 try/except 尽快消除异常并确保它是可迭代的:

try: iter(list_or_elem) 
except TypeError: iterable = [list_or_elem] 
else: iterable = list_or_elem 
y = max(y, *iterable)