删除字符串的最后 3 个字符

新手上路,请多包涵

我正在尝试从 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 个字符(假设没有空格)。

原文由 Sam Machin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 678
2 个回答

删除所有空格:

 foo = ''.join(foo.split())

删除最后三个字符:

 foo = foo[:-3]

转换为大写字母:

 foo = foo.upper()

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

 foo = ''.join(foo.split())[:-3].upper()

原文由 Noctis Skytower 发布,翻译遵循 CC BY-SA 2.5 许可协议

它不像您预期的那样工作,因为 strip 是基于字符的。你需要这样做:

 foo = foo.replace(' ', '')[:-3].upper()

原文由 Nadia Alramli 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题