python 解嵌套的list

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 解嵌套的list相关的知识,希望对你有一定的参考价值。

有一个列表lst_all(几百万项),里面的每项也是一个列表lst_one,里面的列表lst_one格式为['A',黄],['A',绿],['A',白],['B',黄],['C',紫],['C',蓝],即lst_all的形式为:[['A',黄],['A',绿],['A',白],['B',黄],['C',紫],['C',蓝]......]
当里面的lst_one第一项字母相等时,就把第二项颜色拼接在一起。即最终实现[['A','黄绿白'],['B','黄'],['C','紫蓝']...]
求大神简单的方法

import itertools

lst_all = [['A','Blue'],['A','Green'],['A','Yellow'],['B','Red'],['C','Red'],['C','White']]

collector = []
for k, lstgroup in itertools.groupby(sorted(lst_all), lambda x: x[0]):
    collector.append([k, ','.join([c[1] for c in lstgroup])])

print collector

参考技术A # coding: utf-8
lst_all = ['A','黄'],['A','绿'],['A','白'],['B','黄'],['C','紫'],['C','蓝']
d = 
for sublist in lst_all: d[sublist[0]] = d.get(sublist[0],'') + sublist[1]
print sorted(d.items())

用字典的方式更简洁性能会高非常多.

以上是关于python 解嵌套的list的主要内容,如果未能解决你的问题,请参考以下文章

解包、扩展解包和嵌套扩展解包

python中的闭包

Python函数作用域嵌套函数闭包函数高阶函数及装饰器的理解

如何解压缩嵌套字典,其中并非每个***键都具有所有二级键?

Golang如何解组嵌套的JSON数据的子集

将嵌套键解压缩到列表中[重复]