假设我有
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的方法可以做到这一点吗? (即自动将常规输入变成单例列表)。
答案 0 :(得分:2)
您正在描述always_iterable
的基本用例。
>>> from more_itertools.more import always_iterable
>>> for val in always_iterable(1):
... print(val)
...
1
答案 1 :(得分:0)
你可以使用 numpy:
np.atleast_1d(1)
>> array([1])
np.atleast_1d([1,2,3])
>> array([1,2,3])