我有一个项目列表,我想根据分隔符进行拆分.我希望删除所有分隔符,并在分隔符出现两次时拆分列表.例如,如果分隔符是'X',则以下列表:
['a', 'b', 'X', 'X', 'c', 'd', 'X', 'X', 'f', 'X', 'g']
Run Code Online (Sandbox Code Playgroud)
会变成:
[['a', 'b'], ['c', 'd'], ['f', 'g']]
Run Code Online (Sandbox Code Playgroud)
请注意,最后一组未拆分.
我写了一些丑陋的代码来做到这一点,但我确信有更好的东西.如果您可以设置任意长度分隔符(即在看到N个分隔符后拆分列表),则需要额外的分数.
cob*_*bal 13
我不认为这会有一个很好的,优雅的解决方案(我当然希望被证明是错误的)所以我会建议一些简单明了的事情:
def nSplit(lst, delim, count=2):
output = [[]]
delimCount = 0
for item in lst:
if item == delim:
delimCount += 1
elif delimCount >= count:
output.append([item])
delimCount = 0
else:
output[-1].append(item)
delimCount = 0
return output
Run Code Online (Sandbox Code Playgroud)
>>> nSplit(['a', 'b', 'X', 'X', 'c', 'd', 'X', 'X', 'f', 'X', 'g'], 'X', 2)
[['a', 'b'], ['c', 'd'], ['f', 'g']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |