如何使用预定义列表拆分列表,当我x
从列表titles
中找到一个元素时,我想将列表拆分成多个较小的列表(或词典)
titles=['a','c','g','final']
x=['a',3,4,2,'c','b','b1',2,'g','final',...]
预期产量
new_list=[['a',3,4,2],['c','b','b1',2],['g'],['final',...]]
# OR
my_dict={'a':[3,4,2],'c':['b','b1',2],'g':[],'final':[...]}
注意:标题中的元素在x中是唯一的(即,在中不会多次找到“ a” x
)
您可以计算每个标题的索引:
indexes = list(map(x.index, titles))
# or indexes = [x.index(title) for title in titles]
然后zip
indexes
,indexes[1:]
这将使每个索引与下一个索引成对:
z = zip(indexes, indexes[1:] + [None])
print(list(z)) # [(0, 4), (4, 8), (8, 9), (9, None)]
然后使用它来拆分:
要获得子列表的列表:
resultlist = [x[fr:to] for fr, to in zip(indexes, indexes[1:] + [None])]
# [['a', 3, 4, 2], ['c', 'b', 'b1', 2], ['g'], ['final', 'value']]
要获取该命令:
resultdict = {x[fr]: x[fr + 1:to] for fr, to in zip(indexes, indexes[1:] + [None])}
# {'a': [3, 4, 2], 'c': ['b', 'b1', 2], 'g': [], 'final': ['value']}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句