[英]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.