我有这个列表(python):
[item1],[item2],[item3],[/],[item4],[item5],[item6],[/] ......等等.
我想将这些分成块,并且将进入每个块的元素是分隔符"/"之前的元素.
所以我的块看起来像:
chunk1:[item1],[item2],[item3] chunk2:[item4],[item5],[item6]
我已经尝试过并试过,没有任何有效的想法.尝试使用for和if元素[x] =='/'循环遍历它然后得到一些位置.它非常脏,不能正常工作.
任何帮助,将不胜感激.
DSM*_*DSM 10
收集连续块的常用方法是使用itertools.groupby,例如:
>>> from itertools import groupby
>>> blist = ['item1', 'item2', 'item3', '/', 'item4', 'item5', 'item6', '/']
>>> chunks = (list(g) for k,g in groupby(blist, key=lambda x: x != '/') if k)
>>> for chunk in chunks:
... print(chunk)
...
['item1', 'item2', 'item3']
['item4', 'item5', 'item6']
Run Code Online (Sandbox Code Playgroud)
(您对列表的表示[item1],[item2],[item3],[/],使得列表中的每个元素实际上都是一个列表,在这种情况下,相同的方法将起作用,您只需要与['/']分隔符进行比较.)
| 归档时间: |
|
| 查看次数: |
1970 次 |
| 最近记录: |