我正在尝试删除python中字符串的最后3个字符,我不知道这些字符是什么,所以我不能使用rstrip
,我还需要删除任何空格并转换为大写
下面是一个例子:
foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()
这工作,并给我的BS12,这是我想要的,但是,如果最后4和3个字符是相同的,我失去了这两个例如,如果foo = "BS11 1AA"
,我只是得到'BS'
foo
的示例可以是:
BS1 1AB
bs11ab
BS111ab
字符串可以是6或7个字符,我需要去掉最后3个字符(假设没有空格)
有什么建议吗?
发布于 2009-11-26 01:23:18
删除所有空格:
foo = ''.join(foo.split())
删除后三个字符:
foo = foo[:-3]
转换为大写字母:
foo = foo.upper()
所有这些代码都在一行中:
foo = ''.join(foo.split())[:-3].upper()
发布于 2009-11-26 01:17:44
它不会像你预期的那样工作,因为条带是基于字符的。您需要改为执行以下操作:
foo = foo.replace(' ', '')[:-3].upper()
发布于 2009-11-26 09:15:13
>>> foo = "Bs12 3ab"
>>> foo[:-3]
'Bs12 '
>>> foo[:-3].strip()
'Bs12'
>>> foo[:-3].strip().replace(" ","")
'Bs12'
>>> foo[:-3].strip().replace(" ","").upper()
'BS12'
https://stackoverflow.com/questions/1798465
复制相似问题