首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python删除字符串的后3个字符

Python删除字符串的后3个字符
EN

Stack Overflow用户
提问于 2009-11-26 01:14:52
回答 9查看 471.1K关注 0票数 185

我正在尝试删除python中字符串的最后3个字符,我不知道这些字符是什么,所以我不能使用rstrip,我还需要删除任何空格并转换为大写

下面是一个例子:

代码语言:javascript
复制
foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()

这工作,并给我的BS12,这是我想要的,但是,如果最后4和3个字符是相同的,我失去了这两个例如,如果foo = "BS11 1AA",我只是得到'BS'

foo的示例可以是:

代码语言:javascript
复制
BS1 1AB
bs11ab
BS111ab

字符串可以是6或7个字符,我需要去掉最后3个字符(假设没有空格)

有什么建议吗?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-11-26 01:23:18

删除所有空格:

代码语言:javascript
复制
foo = ''.join(foo.split())

删除后三个字符:

代码语言:javascript
复制
foo = foo[:-3]

转换为大写字母:

代码语言:javascript
复制
foo = foo.upper()

所有这些代码都在一行中:

代码语言:javascript
复制
foo = ''.join(foo.split())[:-3].upper()
票数 350
EN

Stack Overflow用户

发布于 2009-11-26 01:17:44

它不会像你预期的那样工作,因为条带是基于字符的。您需要改为执行以下操作:

代码语言:javascript
复制
foo = foo.replace(' ', '')[:-3].upper()
票数 92
EN

Stack Overflow用户

发布于 2009-11-26 09:15:13

代码语言:javascript
复制
>>> foo = "Bs12 3ab"
>>> foo[:-3]
'Bs12 '
>>> foo[:-3].strip()
'Bs12'
>>> foo[:-3].strip().replace(" ","")
'Bs12'
>>> foo[:-3].strip().replace(" ","").upper()
'BS12'
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1798465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档