Python如何将列表按非空首行元素分组为字典
解决方案
可以通过遍历列表并跟踪当前分组键的方式实现需求:
- 初始化空字典存储结果,再用变量记录当前分组键
- 逐个遍历原列表中的子列表:
- 若子列表第一个元素非空,将其设为当前分组键,并在字典中为该键创建空列表
- 若子列表第一个元素为空,就把这个子列表追加到当前分组键对应的列表中
对应的Python代码如下:
l = [ ['one'], ['', 'any'], ['', 'anynay'], ['', 'val'], ['two'], ['', 'dss'], ['tr'], ['', 'ff'], ['', 'mnb'] ] d = {} current_key = None for item in l: first_element = item[0] if first_element: current_key = first_element d[current_key] = [] else: if current_key is not None: d[current_key].append(item) print(d)
运行代码后输出结果:
{ 'one': [['', 'any'], ['', 'anynay'], ['', 'val']], 'two': [['', 'dss']], 'tr': [['', 'ff'], ['', 'mnb']] }
注:你提供的示例结果中'tr'对应的最后一个元素是['', 'mb'],这应该是笔误,代码会按照原列表的实际值['', 'mnb']处理。
内容的提问来源于stack exchange,提问作者kisean
相关产品推荐
相关产品推荐

