我想在一个列表中对元素进行分组-每个组都有一个定义的开始和结束:
data = ['§349', 'Abs.', '2', '4', 'StPO', '1', '3', '42', '§306a', 'Abs.', '1', 'Nr.', '1', 'StGB', '§306b', 'Abs.', '2', 'Nr.', '2', 'StGB', '§306b', 'Abs.', '2', 'Nr.', '2', 'StGB', '§306a', '§306b', 'Abs.', '2', 'Nr.', '2', 'StGB', '2', '3', '4', '5', '4', '§306a', 'Abs.', '1', 'Nr.', '1', 'StGB', '10', '16', '26', '2', 'StR', '76', '§306a', 'Abs.', '1', 'Nr.', '1', 'StGB', '2', 'StR', '2', 'StR', '76', 'StGB', '§306a', '§306a', '§306a', '§306', 'Abs.', '1', 'Nr.', '1', 'StGB']
所需输出=['§349|Abs.2|4|StPO', '§306a|Abs.1|Nr.1|StGB', '§306b|Abs.2|Nr.2|StGB', '§306b|Abs.2|Nr.2|StGB', (...)]
开始:"§"
结束:"StPO"
或"StGB"
列表中的每个元素应首先以符号“§”开始,然后以“StGB”或“StPO”结束。如果在StPO或StGB之后,下一个元素没有以§开头,那么删除它们直到到达§。每个元素都应该用“|”连接起来,但如果元素是“Abs.”或“Nr.”则不能这样-在这种情况下,下一个元素应该在没有分隔符的情况下连接起来。你知道吗
希望这能有所帮助
另一种方法是使用regex和replacement:
输出:
这里有一个简单的方法。在这里,只需添加额外的
elif
语句,以获得对字符串形成的附加约束:相关问题 更多 >
编程相关推荐