python - 在 python 中 reshape 不规则列表

标签 python list

我想 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/

相关文章:

python - 在python中的azure databricks笔记本中发送电子邮件(outlook作为服务器)?

r - 命名列表时使用粘贴

r - 将表格列表转换为矩阵

python - 如何比较两个列表并找出 `added` `deleted` `unchanged ` 部分

python - 如何构建一个基于命令行的简单python项目

python - 相当于Python中的一段PHP代码

python - 在 python 中创建时扩展列表,如何?

python - 检测4个有趣的像素

python - 如何在 Python 中查找字符串中的空字节?

Python-尝试为循环内的列表项分配值时列表分配索引超出范围