首页 > 解决方案 > 接受单个数字或列表并将其用作列表的 Pythonic 方式(相当于 numpy.atleast_1d() )

问题描述

我有一个接受单个数字(例如intor float)的函数,但也有一个list类似的结构。此参数将始终作为list.

将单个数字参数转换为列表并让列表成为的pythonic方法是什么?

我会假设这可行,但它提出了一个TypeError

def foo(a):
    a = list(a)
    a.append(5)
    # and so on

我不想创建这样的列表列表:

def foo(a):
    a = [a]
    a.append(5)
    # and so on

标签: pythonlist

解决方案


你可以使用isinstance喜欢

if (isinstance(a, list)):
    # Do something
else:
    # Do something

你可以isinstance为任何类型做,比如 int。

但更 Pythonic 的方式可能是

try:
    a.append(5)
except TypeError:
    a = [a]
    a.append(5)

推荐阅读