合并多个嵌套列表并添加标签时如何解决层级嵌套错误?
问题分析与解决
你的问题出在将原列表作为单个元素和标签组合,导致每个子列表里标签后跟着的是整个原列表(多了一层嵌套)。
错误原因
你当前的写法是["list_a", list_a],这里list_a本身是一个嵌套列表,所以会被当作一个整体元素放入子列表,就出现了["list_a", [[32, 0.0], [51, 1.4]]]这种多一层括号的结果。
修正方案
需要把标签和原列表的每个子元素展开组合,也就是用["标签"] + 原列表的方式,这样原列表里的每个子列表会被依次添加到标签后面。
修正后的代码:
def my_method(some_param: str) -> list: list_a = some_method().values.tolist() list_b = some_method().values.tolist() list_c = some_method().values.tolist() final_list = [["list_a"] + list_a, ["list_b"] + list_b, ["list_c"] + list_c] return final_list
验证结果
运行修正后的代码,得到的结果就会符合你的预期:
[ ["list_a", [32, 0.0], [51, 1.4]], ["list_b", ["APPLE", 0.7], ["BANANA", 0.0]], ["list_c", [32, "CAT"], [41, "DOG"]] ]
内容的提问来源于stack exchange,提问作者Joe Bloggr
相关产品推荐
相关产品推荐

