繁体   English   中英

除非在 Python 3 中被多位整数包围,否则将字符串中的字符拆分为列表

[英]Split characters in string to list unless surrounded by multi-digit integers in Python 3

如果我有以下列表:

['{', "'", 'b', 'a', 'n', 'a', 'n', 'a', "'", ':', ' ', '3', ',', ' ', "'", 'a', 'p', 'p', 'l', 'e', "'", ':', ' ', '5', ',', ' ', "'", 'o', 'r', 'a', 'n', 'g', 'e', 's', "'", ':', ' ', "'", '4', '3', '5', "'", '}']

如何拆分它以便不拆分多位整数? 使用前面的例子:

['{', "'", 'b', 'a', 'n', 'a', 'n', 'a', "'", ':', ' ', '3', ',', ' ', "'", 'a', 'p', 'p', 'l', 'e', "'", ':', ' ', '5', ',', ' ', "'", 'o', 'r', 'a', 'n', 'g', 'e', 's', "'", ':', ' ', "'", '435', "'", '}']
def func(a):
    st = []
    tmp = ''
    for i in a:
            if i.isdigit():
                    tmp+=i
            else:
                    if tmp!='':
                            st.append(tmp)
                            tmp = ''
                    st.append(i)
    if tmp!='':
            st.append(tmp)
            tmp =''
    return st

a = ['{', "'", 'b', 'a', 'n', 'a', 'n', 'a', "'", ':', ' ', '3', ',', ' ', "'", 'a', 'p', 'p', 'l', 'e', "'", ':', ' ', '5', ',', ' ', "'", 'o', 'r', 'a', 'n', 'g', 'e', 's', "'", ':', ' ', "'", '4', '3', '5', "'", '}']
print(func(a))

输出

['{', "'", 'b', 'a', 'n', 'a', 'n', 'a', "'", ':', ' ', '3', ',', ' ', "'", 'a', 'p', 'p', 'l', 'e', "'", ':', ' ', '5', ',', ' ', "'", 'o', 'r', 'a', 'n', 'g', 'e', 's', "'", ':', ' ', "'", '435', "'", '}']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM