我希望将字符串或字典包装到列表中,并提出以下简单代码。还有其他更具表现力/简洁/“ 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)
答案 0 :(得分:2)
看起来不错,我唯一想到的就是可以在isinstance
中使用元组,因此isinstance(x, (str, dict))
的作用与isinstance(x, str) or isinstance(x, dict)
相同。