2024-09-28 23:27:17 发布
网友
我有一个class属性,它可以是字符串,也可以是字符串列表。我想把它转换成一个元组,这样列表就可以正常转换,但是一个字符串就变成了一个单项元组:
[str, str] --> (str, str)
str --> (str, )
不幸的是tuple('sting')返回('s', 't', 'r', 'i', 'n', 'g'),这不是我所期望的。有没有可能不检查型号就可以做?你知道吗
tuple('sting')
('s', 't', 'r', 'i', 'n', 'g')
您可以这样做:
>>> s = 'str' >>> print (s,) ('str',)
在处理字符串时,不需要调用^{}来实现您正在尝试的功能。你知道吗
如果您需要一个方法来帮助这两种类型,那么就不能避免类型检查:
def tuplising(typ): return tuple(typ) if isinstance(typ, list) else (typ,)
类型检查将是一个很好的方法来实现这一点。否则,如何确定输入是列表还是字符串?。你知道吗
您可以创建一个函数来测试输入是一个列表还是一个字符串,并适当地返回和处理其余的内容。类似于
>>> 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')
您也只能检查字符串(假设python2.x,将Py3中的basestring替换为str)
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)
您可以这样做:
在处理字符串时,不需要调用^{} 来实现您正在尝试的功能。你知道吗
如果您需要一个方法来帮助这两种类型,那么就不能避免类型检查:
类型检查将是一个很好的方法来实现这一点。否则,如何确定输入是列表还是字符串?。你知道吗
您可以创建一个函数来测试输入是一个列表还是一个字符串,并适当地返回和处理其余的内容。类似于
您也只能检查字符串(假设python2.x,将Py3中的
basestring
替换为str
)也可以将函数转换为一个线性函数。你知道吗
相关问题 更多 >
编程相关推荐