类型检查将是实现这一目标的好方法。否则,您将如何确定输入是列表还是字符串?
您可以创建一个函数来测试输入是列表还是字符串,然后适当地返回并根据您认为合适的方式处理其余部分。类似于
>>> def convert_to_tuple(elem):
if isinstance(elem, list):
return tuple(elem)
elif isinstance(elem, basestring):
return (elem,)
else:
# Do Something
pass
>>> convert_to_tuple('abc')
('abc',)
>>> convert_to_tuple(['abc', 'def'])
('abc', 'def')
您也只能检查字符串,(假设 Python 2.x,在 Py3 中将 basestring 替换为 str)
>>> def convert_to_tuple(elem):
if isinstance(elem, basestring):
return (elem,)
else:
return tuple(elem)
>>> convert_to_tuple('abc')
('abc',)
>>> convert_to_tuple(('abc', 'def'))
('abc', 'def')
>>> convert_to_tuple(['abc', 'def'])
('abc', 'def')
也可以将函数转换为单行。
>>> def convert_to_tuple(elem):
return (elem,) if isinstance(elem, basestring) else tuple(elem)