我想 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']
。否则,对于不遵循该模式的组,您将需要特殊情况逻辑。
关于python - 在 python 中 reshape 不规则列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7882997/