我有以下字符串,我想将其转换为数组/列表,以便我可以测量它的长度。
a="abc,cde,ert,ert,eee"
b="a", "b", "c"
a
的预期长度应为1
,b
的预期长度应为3
。
答案 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)
来处理unicode
和str
个对象。
答案 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)