我正在尝试将可能被格式化为整数或列表的值转换为列表。
例如
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]
答案 0 :(得分:4)
这类事情应该做:
def func(obj):
return obj if isinstance(obj, list) else [obj]