Python-展平不规则列表

Python-展平不规则列表,python,list,Python,List,如何展平此列表: irr_list = [[[u'Animal Collective'], u'Lion in a Coma'], [[u'Animal Collective'], u'Hocus Pocus'], [[u'Animal Collective'], u'Vertical'], [[u'Animal Collective'], u'Natural Selection'], [[u'Animal Collective'], u'Spilling Guts'], [[u'Animal

如何展平此列表:

irr_list = [[[u'Animal Collective'], u'Lion in a Coma'], [[u'Animal Collective'], u'Hocus Pocus'], [[u'Animal Collective'], u'Vertical'], [[u'Animal Collective'], u'Natural Selection'], [[u'Animal Collective'], u'Spilling Guts'], [[u'Animal Collective'], u'Recycling']]
对于这个期望的输出

output = [[u'Animal Collective', u'Lion in a Coma'], [u'Animal Collective', u'Hocus Pocus'], [u'Animal Collective', u'Vertical'], [u'Animal Collective', u'Natural Selection'], [u'Animal Collective', u'Spilling Guts'], [u'Animal Collective', u'Recycling']]
我试过:

flattened = [val for sublist in irr_list for val in sublist]
无效

您可以尝试以下方法:

import itertools

new_data = [list(itertools.chain.from_iterable([[b] if not isinstance(b, list) else b for b in i])) for i in irr_list]
输出:

[[u'Animal Collective', u'Lion in a Coma'], [u'Animal Collective', u'Hocus Pocus'], [u'Animal Collective', u'Vertical'], [u'Animal Collective', u'Natural Selection'], [u'Animal Collective', u'Spilling Guts'], [u'Animal Collective', u'Recycling']]

如果列表的格式始终为
[[list,element],[list,element],…]
,则可以使用列表理解

output = [[l[0], e] for l, e in irr_list]

所以它总是
[['动物集体'],'…']
?只需为irr\U列表中的i执行
[[i[0][0],i[1]]
您尝试了什么?查看wiki。请参阅编辑