wp231957 发表于 2023-4-17 14:48:57

小问题,关于函数返回值

if len(list(res)) >0return list(res)   elsereturn 0

这个还有什么高大上的写法吗   感觉有些啰嗦

wp231957 发表于 2023-4-17 14:52:07

可以这样写
if list(res) :
      return list(res)
    else:
      return 0   

不知道是否还有更好的了

isdkz 发表于 2023-4-17 14:54:00

本帖最后由 isdkz 于 2023-4-17 14:55 编辑

当然可以用更简洁的方法来实现相同的功能。这里是一个用 Python 的三元操作符实现的简化版本:

return list(res) if len(list(res)) > 0 else 0

但是如果你想要进一步减少不必要的列表转换,可以采用以下写法:

return next(iter(res), 0)

这里使用了 next() 函数和 iter() 函数。iter(res) 创建了一个 res 的迭代器,然后 next() 函数尝试获取迭代器中的第一个元素,

如果迭代器为空(即 res 为空),则返回 0。这样,你可以避免在 res 为空时多次转换为列表。


不得不说,GPT是真的强呀,next(iter(res), 0) 这种写法我是真没想到{:5_106:}

wp231957 发表于 2023-4-17 14:57:23

页: [1]
查看完整版本: 小问题,关于函数返回值