如何将Python列表中的后续数字连接到双(或更多)数字numb中

2024-09-29 22:30:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下字符串:

string = 'TAA15=ATT'

我列了一个清单:

string_list = list(string)
print(string_list)

结果是:

['T', 'A', 'A', '1', '5','=', 'A', 'T', 'T']

我需要检测后续的数字并将它们合并为一个数字,如下所示:

['T', 'A', 'A', '15','=', 'A', 'T', 'T']

我也很关心表演。这个字符串转换要进行上千次。你知道吗

谢谢你提供的任何提示。你知道吗


Tags: 字符串string数字attlistprint关心taa15
3条回答

使用itertools.groupby

例如:

from itertools import groupby
string = 'TAA15=ATT'

result = []
for k, v in groupby(string, str.isdigit):
    if k:
        result.append("".join(v))
    else:
        result.extend(v)
print(result)

输出:

['T', 'A', 'A', '15', '=', 'A', 'T', 'T']

这里有一个非常简短的解决方案

import re

def digitsMerger(source):
    return re.findall(r'\d+|.', source)
digitsMerger('TAA15=ATT')
['T', 'A', 'A', '15', '=', 'A', 'T', 'T']

另一个regexp:

import re

s = 'TAA15=ATT'

pattern = r'\d+|\D'

m = re.findall(pattern, s)

print(m)

相关问题 更多 >

    热门问题