包装元素以在python中列出

时间:2018-06-20 13:44:18

标签: python list iteration

我希望将字符串或字典包装到列表中,并提出以下简单代码。还有其他更具表现力/简洁/“ pythonic”的方式吗?

def iterate(x):
    if isinstance(x, list):
        return x
    elif isinstance(x, str) or isinstance(x, dict):
        return [x]
    else:
        raise TypeError(x)

assert iterate('abc') == ['abc']
assert iterate(dict(abc=1)) == [dict(abc=1)]
assert iterate([1, 2]) == [1, 2]

更新:@Bubble之后编辑:

def iterate(x):
    if isinstance(x, (list, tuple)):
        return x
    elif isinstance(x, (str, dict)):
        return [x]
    else:
        raise TypeError(x)

1 个答案:

答案 0 :(得分:2)

看起来不错,我唯一想到的就是可以在isinstance中使用元组,因此isinstance(x, (str, dict))的作用与isinstance(x, str) or isinstance(x, dict)相同。