如何在Python中的所有字符和整数之间拆分字符串

问题描述

例如,我要将“ 2pL11H10K”转换为[2,p,L,11,H,10,K]

解决方法

使用正则表达式。 例子

your_string = "2pL11H10K"
items = re.findall(r'[A-Za-z]|\d+',your_string)
print(items)

那你就得到

['2','p','L','11','H','10','K']
,

您可以在loop中实现此逻辑,如果您不希望导入任何模块,则检查上一个元素是数字还是char。但是regex可能是最优雅的解决方案。

result = []
for e in string:
    if result:
        if result[-1].isdigit() and e.isdigit():
            result[-1] = result[-1] + e
        else:
            result.append(e)
    else:
        result.append(e)
,

必须使用正则表达式,并且已经给出了一些优质的答案,但是您还需要将数字从str()转换为int()。这也可以使用正则表达式来实现,例如使用[0-9]+来标识一个或多个数字。