如何获取字段中最后一个逗号后面的字符串

3

我有一列数据,使用Python进行访问,数据如下:

501,555,570=3.5

我想得到 570=3.5。我该如何做?这会是split命令的变化吗?

是的,split() 应该可以工作。 - 9000
@gtlambert:降级是因为我没有将示例数据放在特殊的代码块中吗? - Jazzmine
我没有给你点踩!我只是改善了你代码的格式。 - gtlambert
2
@jazzime:通常会对那些在提问之前未能进行基本研究的作者进行踩票。 - 9000
好的,我已经进行了基本的研究,但是没有看到选择最后一个逗号后面文本的示例。我看到了几个只有一个逗号的示例。能否提供一个在最后一个逗号后面提取文本的示例?谢谢。 - Jazzmine
7个回答

9
 >>> s = '501,555,570=3.5'
 >>> s.split(",")[-1]
 '570=3.5'

这将访问分割字符串中的最后一个元素。它不依赖于字符串中有多少个逗号。

较长字符串的示例:

>>> s = "501,555,670,450,1,12,570=3.5"
>>> s.split(",")[-1]
'570=3.5'

8
您可以按照以下方式使用str.rsplit()函数:
In [34]: s = '501,555,570=3.5'

In [35]: s.rsplit(',', 1)[1]
Out[35]: '570=3.5'

我认为提供的所有答案都有效,但由于您是第一个回答的,我已将其标记为正确答案。不过,我也测试了 s.split(',') 方法,它也产生了相同的结果。谢谢大家。 - Jazzmine

4

如果你使用的是最新版本的Python 3,这是对wim答案的轻微变化:

>>> s = '501,555,570=3.5'
>>> *others, last = s.split(',')
>>> last
'570=3.5'

1
或者只需使用 last = s.split(',')[-1] 即可访问最后一个元素。 - MSeifert
非常好,我用过 :) - Ido Bleicher

2
>>> s = '501,555,570=3.5'
>>> others, last = s.rsplit(',', 1)
>>> last
'570=3.5'

2

另一种变体,以及我自己的做法:

>>> s = '501,555,570=3.5'
>>> last = s.split(',')[-1]
>>> last
'570=3.5'

2

使用rpartition,正如@MartijnPieters♦在他的评论中提到的。

对于单个拆分,str.rpartition()会更快。

>>> s.rpartition(',')[-1]
'570=3.5'

1
你可以从最后一个逗号的位置之后取出子字符串。
s[s.rfind(',') + 1 : ]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接