假设我有以下功能:
def sum(summands)
s = 0
for a in summands:
s = a + s
用户可以用list
sum([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/