假设我有以下功能:

def sum(summands)
    s = 0
    for a in summands:
        s = a + s

用户可以用listsum([1, 2, 3])来调用它,但是如果您也可以用一个数字sum(5)直接调用它,那就很方便了。(实际上这不是数字,只是一个简单的例子。)
我可以发明一个函数:
def make_iterable(x):
    # returns x if x is iterable, returns [x] if x is not iterable

但是,有没有一种更短的内置方式来使单个元素变得可伸缩呢?

最佳答案

这就是你所需要的

def sum(summands)
s = 0
summands = summands if isinstance(summands, list) else [summands]
for a in summands:
    s = a + s

关于python - 遍历可能是迭代器或单个元素的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36750167/

10-11 04:47