如何对列表中的一个项目按“-”分割字符串?

0 投票
3 回答
530 浏览
提问于 2025-04-18 11:56

我有一个列表,里面有一个项目,我需要通过“-”来拆分这个项目,以便访问最后一部分数据:

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

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答