Skip to main content
 首页 » 编程设计

python之在 python 中 reshape 不规则列表

2025年05月04日15leader

我想 reshape 以下列表:

wide_list = [[1,['a','b','c']],[2,['d','e']],[3,'f']] 

以“长格式”:

long_list = [[1,'a'],[1,'b'],[1,'c'],[2,'d'],[2,'e'],[3,'f']] 

如何在 Python 中有效地实现这一点?

请您参考如下方法:

尝试嵌套列表理解:

>>> wide_list = [[1,['a','b','c']],[2,['d','e']],[3, ['f']]] 
>>> long_list = [[k, v] for k, sublist in wide_list for v in sublist] 
>>> long_list 
[[1, 'a'], [1, 'b'], [1, 'c'], [2, 'd'], [2, 'e'], [3, 'f']] 

请注意,必须更改最后一组以匹配前两组的模式。使用 [3, ['f']] 代替 [3, 'f']。否则,对于不遵循该模式的组,您将需要特殊情况逻辑。