我有一个列表,其中包含一个项目,我需要按" - "访问最后一段数据:
a = ['1-35-047-13-6299\t1\n']
通常情况下,我会通过以下调用来执行此操作:
test = a.split("-")
然而,这会产生以下错误
>>> a = ['1-35-047-13-6299\t1\n']
>>> a
['1-35-047-13-6299\t1\n']
>>> test = a.split("-")
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
AttributeError: 'list' object has no attribute 'split'
>>>
如何获取列表项中的最后一段数据,例如&#34; 6299 \ T1 \ n&#34;使用拆分方法?
答案 0 :(得分:4)
test = a[0].split('-')[-1]
print test
答案 1 :(得分:3)
这里至少有两个问题。首先,正如错误消息所说split
需要字符串而不是列表,但a
是字符串列表而不是字符串。因此split
对于这个特定情况需要a[0]
,或者通常你可以信任的是一个字符串。
然后需要拆分最右边的元素。这就是rsplit
的用途,可能使用限制分割数量的参数。所以你想要的底线如下:
test = a[0].rsplit('-',1)[1]
如果您的输入字符串不包含-
字符,即使这样也会失败 - 捕获rsplit
的整个输出并检查其长度或使用反向索引到其输出中将有助于防止情况下。
答案 2 :(得分:0)
追溯显示:'list' object has no attribute 'split'
'String'对象具有'split'属性,
你可以使用a[i].split('-')