Python如何移除嵌套列表中字典的键并仅保留对应值
实现方案
核心逻辑是遍历两层嵌套数组,将最内层的字典对象按text、id、info的顺序提取字段值,组装为子列表即可。
最简洁的实现方式是使用嵌套列表推导式,Python 3.7+版本中字典默认保留键的插入顺序,可以直接取字典的值生成列表:
myarr = [ [{'text':'da','id':'aa','info':'aaa'},{'text':'da','id':'aa','info':'aaa'},{'text':'da','id':'aa','info':'aaa'}], [{'text':'da','id':'aa','info':'aaa'},{'text':'da','id':'aa','info':'aaa'},{'text':'da','id':'aa','info':'aaa'}] ] result = [ [list(item.values()) for item in sub_list] for sub_list in myarr ]
注意:如果使用Python 3.7以下版本,字典不保证键值顺序,不要直接用values()方法取值;就算是高版本Python,如果字典可能存在额外字段,也推荐显式指定键的顺序提取值,避免输出结构不符合预期,写法如下:
result = [ [[item['text'], item['id'], item['info']] for item in sub_list] for sub_list in myarr ]
运行上述代码后,result的输出和你预期的结果完全一致:
[ [['da','aa','aaa'],['da','aa','aaa'],['da','aa','aaa']], [['da','aa','aaa'],['da','aa','aaa'],['da','aa','aaa']] ]
内容的提问来源于stack exchange,提问作者Cyrus
相关产品推荐
相关产品推荐

