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

例如:

foo = "Bs12 3ab"
foo.replace(" ", "").rstrip(foo[-3:]).upper()

这是有效的,给了我BS12,这是我想要的,但是如果最后的第四个&第三个字符是相同的,我失去了两个,如如果foo = "BS11 1AA"我只得到'BS'

foo的示例可能包括:

BS1 1AB
bs11ab
BS111ab

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

有什么建议吗?

推荐答案

删除所有空格:

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

删除最后三个字符:

foo = foo[:-3]

转换为大写字母:

foo = foo.upper()

所有代码都在一行中:

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

Python相关问答推荐

按特定顺序移动对象数组中的字母

如何在“\n”上拆分一行并将拆分后的所有内容添加到新行?

如何像我们在 pyspark withColumn 中一样在 pandas 中动态创建新列

使用 make_axes_locatable 时如何删除 matplotlib 子图中的填充

如何使用自定义类方法覆盖在元类中定义的特殊方法?

如何使代码同时接受 int 和 float 类型的值作为 double 类型? - Python

将到今年年底的剩余时间添加到今天的日期

如何使用多个可选参数对函数进行类型重载?

sklearn patchextractor ...缺少元素

Python ImportError: sys.meta_path is None, Python 可能正在关闭

将 NRRD 文件转换为 JPG

如何使用现代 Python 重定向模块导入?

将 pandasql 输出分配给 DataFrame 中的新列

正则表达式匹配字符串中的多个数字

Pandas :列的值,然后按相同的 ID 分组和合并

Sympy 反函数:y = ax+b 变为 x = (y-b)/a

cupy.asnumpy() 和 get() 之间的区别

如何将一列的所有项目移动到Pandas 中的列?

从 csv 导入数据 - 无法将字符串转换为浮点数

按日期字段执行合并,而不在 DataFrame 中创建辅助列