要列出的整数或列表

时间:2017-08-03 20:05:24

标签: python

我正在尝试将可能被格式化为整数或列表的值转换为列表。

例如

      60 --> [60]
    [60] --> [60]
[55, 65] --> [55, 65]

如果我只是将变量放在括号中,它会从整数创建一个1D列表,但如果它已经是一个列表,则会创建一个嵌套列表。使用if或try语句有很多方法可以做到这一点,但是我必须有一个简单的单行方式?

以下函数返回所需的值,但是递归函数真的是最好的方法吗?

def flatten(v):
    return flatten(v[0]) + (flatten(v[1:]) if len(v) > 1 else []) \
    if type(v) is list else [v]

1 个答案:

答案 0 :(得分:4)

这类事情应该做:

def func(obj):
     return obj if isinstance(obj, list) else [obj]