我想分开一根绳子,比如:

strg = "22+11-aa+bb-44-"

在这样的列表中:
my_list = ['22', '+','11', '-', 'aa', '+', 'bb', '-44', '-']

所有非数字元素都是完全拆分的,如果“-”后面的元素是由数字组成的,那么它应该与“-”连接在一起并成为负数。

最佳答案

一个不带regex的解决方案,使其在大型数据集上的运行时间更长,但速度更快:

strg="22+11-aa+bb-44-"
arr=[]
i=0
for j in range(len(strg)):
        if strg[j] in '+-':
            arr.append(strg[i:j])
            if strg[j]=='-' and strg[min(j+1,len(strg)-1)].isdigit():
                i=j
            else:
                arr.append(strg[j])
                i=j+1
print arr

结果:
['22', '+', '11', '-', 'aa', '+', 'bb', '-44', '-']

关于python - 如何在考虑负数的情况下将字符串拆分为列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8201737/

10-10 08:54