假设我有
def distance2(vector1, vector2):
zipped = zip(vector1, vector2)
difference2 = [(vector2 - vector1) ** 2 for (vector1, vector2) in zipped]
return sum(difference2)
其中 distance2(vector1, vector2)
找到 vector1
和 vector2
之间的(平方)欧几里得距离。该函数适用于可迭代元素,但假设我们还想让它适用于不可迭代元素(即 distance2(1,3)
)。有没有pythonic的方法来做到这一点? (即,自动将常规输入转换为单例列表)。
最佳答案
您正在描述 always_iterable
的基本用法.
>>> from more_itertools.more import always_iterable
>>> for val in always_iterable(1):
... print(val)
...
1
关于如果还不是可迭代的,则将 Pythonic 转换为单例可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55617598/