如何从两个列表生成指定嵌套列表?代码调试求助
修正方法说明
你的代码问题在于,它是把x1的所有元素单独组成一个子列表,x2的所有元素单独组成另一个子列表,最终得到的是[[1, 2], [Z, Y]],和你需要的对应位置元素配对的结果不符。
要实现目标,你需要把两个列表中索引相同的元素配对成子列表,这里可以用Python内置的zip()函数来实现,它会自动将多个列表的对应位置元素打包成元组。
方法1:列表推导式 + zip()
x1 = [1, 2] x2 = [Z, Y] # Z、Y为你定义的变量,若为字符串需加引号 xtotal = [[a, b] for a, b in zip(x1, x2)] print(xtotal) # 输出: [[1, Z], [2, Y]]
方法2:map() + zip()
如果想更简洁,也可以用map()将每个zip生成的元组转为列表:
x1 = [1, 2] x2 = [Z, Y] xtotal = list(map(list, zip(x1, x2))) print(xtotal) # 输出: [[1, Z], [2, Y]]
补充说明
zip(x1, x2)会生成一个迭代器,其中的元素是(1, Z)、(2, Y)这样的元组。- 两个方法都是将这些元组转换为列表,最终组合成你需要的嵌套列表结构。
内容的提问来源于stack exchange,提问作者Casey Nwan
相关产品推荐
相关产品推荐

