测量元组或字符串的长度

时间:2014-07-10 00:31:37

标签: python string

我有以下字符串,我想将其转换为数组/列表,以便我可以测量它的长度。

a="abc,cde,ert,ert,eee"
b="a", "b", "c"

a的预期长度应为1b的预期长度应为3

4 个答案:

答案 0 :(得分:2)

a是一个字符串,b是一个元组。你可以尝试这样的事情:

def length_of_str_or_tuple(obj):
    if(isinstance(obj,basestring)):
        return 1
    return len(obj)

虽然你正在做的事情真的很奇怪,你应该重新考虑你的做法。

答案 1 :(得分:1)

您可以使用以下内容:

>>> a="abc,cde,ert,ert,eee"
>>> b="a", "b", "c"
>>> 1 if isinstance(a, str) else len(a)
1
>>> 1 if isinstance(b, str) else len(b)
3
>>>

在上面的代码中,conditional expression使用isinstance来测试item是否为字符串对象。如果是,则返回1,如果不是,则返回len(item)

请注意,在Python 2.x中,您应该使用isinstance(item, basestring)来处理unicodestr个对象。

答案 2 :(得分:0)

有一种粗俗的方法:检查哪个是字符串,哪个是元组:

x ={}

for item in (a,b):
    try:
        item.find('')
        x[item] = 1
    except:
        x[item] = len(item)

由于tuple对象没有属性find,因此会引发异常。

答案 3 :(得分:-3)

测量字符串的长度:

len(a.split())

为元组:

len(list(b))

将以前的答案结合起来测试元组或列表,你会得到你想要的,或者使用:

if type(x) is tuple:    
    len(list(x))    
else:    
    a = x.split("\"")    
    len(a)