如何对列表中的一个项目按“-”分割字符串?
我有一个列表,里面有一个项目,我需要通过“-”来拆分这个项目,以便访问最后一部分数据:
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'
>>>
我该如何使用拆分方法来获取列表项目中的最后一部分数据,比如“6299\t1\n”?
3 个回答
0
错误信息显示:'list'对象没有'split'这个属性
其实,'字符串'对象是有'split'这个属性的,你可以用 a[i].split('-')
来进行分割。
3
你这里至少有两个问题。首先,错误信息提到的 split
函数是需要一个字符串,而不是一个列表。但 a
是一个字符串列表,而不是单个字符串。所以在这种情况下,split
需要用 a[0]
,或者一般来说,你需要确保传给它的是一个字符串。
接下来,你需要从中提取出最右边的元素。这就是 rsplit
的用处,通常还会有一个参数来限制分割的次数。所以简单来说,你需要的代码大概是这样的:
test = a[0].rsplit('-',1)[1]
即使这样,如果你的输入字符串里没有 -
字符,这个代码也会出错。你可以通过捕获 rsplit
的整个输出并检查它的长度,或者使用反向索引来避免这种情况。
4
test = a[0].split('-')[-1]
print test
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。