如果还不是可迭代的,则将 Pythonic 转换为单例可迭代

标签 python

假设我有

def distance2(vector1, vector2):
    zipped = zip(vector1, vector2)
    difference2 = [(vector2 - vector1) ** 2 for (vector1, vector2) in zipped]
    return sum(difference2)

其中 distance2(vector1, vector2) 找到 vector1vector2 之间的(平方)欧几里得距离。该函数适用于可迭代元素,但假设我们还想让它适用于不可迭代元素(即 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/

相关文章:

python - 请参阅 Pydev 调试中的队列项目

python - 在行为上,你如何只运行一个场景?

python - 在 Geopandas 中更改颜色条

python - 使用空白节点 (rdflib) 时,Sparql 查询返回不期望的结果

Python - 如何使用管道调用 bash 命令?

python - AttributeError: '_io.BufferedReader' 对象没有属性 'strip'

python 2.2 : How to get the lower 32 bits out of a 64 bit number?

python - 缩短 For 循环

Python在字母列表中查找给定字符串的问题

python - 找不到docker discord.py ffmpeg.exe