问题描述
例如,我要将“ 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]+
来标识一个或多个数字。