Skip to main content
 首页 » 编程设计

Python之在一定数量的特殊字符后将字符串拆分为列表

2025年05月04日47del

我有一个 python 程序,它向服务器发出 SOAP 请求,它工作正常:
我从服务器得到答案,解析它,清理它,当我完成时,我最终得到一个这样的字符串:

name|value|value_name|default|seq|last_modify|record_type|1|Detail|0|0|20150807115904|zero_out|0|No|0|0|20150807115911|out_ind|1|部分ZeroOut|0 |0|20150807115911|...

基本上,它是一个字符串,其值由“|”分隔。我也知道我请求的数据库的结构,所以我知道它有 6 列和不同的行。我基本上需要在每 6 个“|”之后拆分字符串字符,以获得类似的东西:

name|value|value_name|default|seq|last_modify| 
 
record_type|1|Detail|0|0|20150807115904| 
 
zero_out|0|No|0|0|20150807115911| 
 
out_ind|1|Partially ZeroOut|0|0|20150807115911|... 

你能告诉我如何在 Python 中做到这一点吗?谢谢!

请您参考如下方法:

这是一个函数式解决方案。

s = 'name|value|value_name|default|seq|last_modify|record_type|1|Detail|0|0|20150807115904|zero_out|0|No|0|0|20150807115911|out_ind|1|Partially ZeroOut|0|0|20150807115911|' 
 
for row in map('|'.join, zip(*[iter(s.split('|'))] * 6)): 
    print(row + '|') 

输出

name|value|value_name|default|seq|last_modify| 
record_type|1|Detail|0|0|20150807115904| 
zero_out|0|No|0|0|20150807115911| 
out_ind|1|Partially ZeroOut|0|0|20150807115911| 

有关 zip(*[iter(seq)] * rowsize) 工作原理的信息,请参阅 Splitting a list into even chunks 上的链接.