python - 如何迭代一个既可以是整数又可以是数组的变量?

标签 python arrays python-3.x numpy int

我想制作一个同时接受整数和整数数组的多用途函数,例如一些 Numpy 函数,例如 delete做:

def foo(bar):   # type(foo) can be integer or an array of integers
    for i in bar:
        print(bar)

问题是当 bar 是单个 int 时,这显然会引发 TypeError: 'int' object is not iterable。而且我无法找到如何将 bar 转换为数组或任何可迭代的内容,并且在 bar 是数组时不会破坏代码。这个怎么做?

最佳答案

numpy.array有一个可选的 ndmin 参数。将其设置为 1 以保证您正在迭代一维数组:

def foo(bar):   # type(bar) can be integer or an array of integers
    for i in np.array(bar, ndmin=1):
        print(i)

您还可以指定 copy=False 以避免在输入已经是数组时生成副本。

请注意,我还修改了您的逻辑:您希望在迭代时打印 i 而不是 bar

关于python - 如何迭代一个既可以是整数又可以是数组的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48973026/

相关文章:

javascript - 过滤器列表 - 根据计数键删除两个重复项中较小的一个

跨开源模块的 Python 日志记录

python - 如何在 django 模板中每个循环渲染 3 个元素?

python - 如何根据另一个数据帧的多重索引的值应用一个数据帧中的值?

python - 如何在Python中检查输入是字符串还是unicode

python - 使用python将字符串转换为字典

python-3.x - Pandas 在导入 csv 文件时删除空格/未知字符

python - Python 3.2 中的 HEX 解码

Java显示不同的对象

javascript - Handlebars 数组长度条件助手