我知道关于扁平化嵌套列表的主题已经被详细讨论过了,但是我认为我的任务有点不同,而且我找不到任何信息。
我正在编写一个爬虫程序,输出结果是一个嵌套列表。顶层列表元素应成为电子表格形式中的数据行。然而,由于嵌套列表长度经常不同,因此我需要在扁平化列表之前扩展它们。
这是一个例子。我有
[ [ "id1", [["x", "y", "z"], [1, 2]], ["a", "b", "c"]],
[ "id2", [["x", "y", "z"], [1, 2, 3]], ["a", "b"]],
[ "id3", [["x", "y"], [1, 2, 3]], ["a", "b", "c", ""]] ]
我最终想要的输出是:
[[ "id1", "x", "y", z, 1, 2, "", "a", "b", "c", ""],
[ "id2", "x", "y", z, 1, 2, 3, "a", "b", "", ""],
[ "id3", "x", "y", "", 1, 2, 3, "a", "b", "c", ""]]
然而,像这样的中间列表:
[ [ "id1", [["x", "y", "z"], [1, 2, ""]], ["a", "b", "c", ""]],
[ "id2", [["x", "y", "z"], [1, 2, 3]], ["a", "b", "", ""]],
[ "id3", [["x", "y", ""], [1, 2, 3]], ["a", "b", "c", ""]] ]
如果我能够简单地展开它,那就更好了。
每次迭代都会构建顶层列表元素(行),并将其附加到完整列表中。我想在最后转换完整列表会更容易一些?
嵌套元素的结构应该相同,但此时我无法确定。如果结构看起来像这样,我想我会遇到问题。
[ [ "id1", [[x, y, z], [1, 2]], ["a", "b", "c"]],
[ "id2", [[x, y, z], [1, 2, 3]], ["bla"], ["a", "b"]],
[ "id3", [[x, y], [1, 2, 3]], ["a", "b", "c", ""]] ]
应该变成
[[ "id1", x, y, z, 1, 2, "", "", "a", "b", "c", ""],
[ "id2", x, y, z, 1, 2, 3, "bla", "a", "b", "", ""],
[ "id3", x, y, "", 1, 2, 3, "", "a", "b", "c", ""]]
感谢任何评论,如果这很琐碎,请原谅,我对Python还很陌生。
[x, y, , 1, 2, 3, "a", "b", "c", ""]
看起来不像是有效的Python列表 - 您必须在y
之后和1
之前放置一些内容。您希望它是None
吗?但这将与您在列表末尾用作空白的""
冲突... - Ihor Kaharlichenkox
、y
和z
是什么。它们是预先定义的某种常量或变量吗? - Ihor Kaharlichenko""
填充项目#1和项目#3,因为是由于bla
而不是填充["a", "b", "c", ""]
中的项目#3 以使其变为["bla", "", "", ""]
? - sloth