首页 > 解决方案 > 拆分多维列表python并与另一个列表python结合

问题描述

这些是列表:

[(3.8, 101.39), (1.597, 103.613), (4.7, 100.83), (4.804, 101.52)]
[(3.845, 101.396), (1.56, 103.613), (4.71, 100.9), (4.454, 101.161)]
[(3.847, 101.3), (1.59, 103.63), (4.76, 100.89), (4.45, 101.16)]

如何将它们拆分成这样:

[(3.8, 101.39), (3.845, 101.396), (3.847, 101.3)]
[(1.597, 103.613), (1.56, 103.613), (1.59, 103.63)]
[(4.7, 100.83), (4.71, 100.9), (4.76, 100.89)]
[(4.804, 101.52), (4.454, 101.161), (4.45, 101.16)]

并最终能够生产:

3.8 101.39 3.845 101.396 3.847 101.3
1.597 103.613 1.56 103.613 1.59 103.63
4.7 100.83 4.71, 100.9 4.76 100.89
4.804 101.52 4.454 101.161 4.45 101.16

我当前的代码:

a, b, c = map(list, zip(*abc))
d, e = map(list, zip(*a))

产生这个结果:

[3.8462193, 1.597, 4.7, 4.804 ]
[101.39, 103.613, 100.83, 101.52]

哪个是错的...

标签: pythonlistmultidimensional-array

解决方案


如果我对您的理解正确,您需要做的就是使用第一个map(list, zip(*abc))正确拆分输入以获得所需结果的方法。虽然我认为您的代码中有一个错误,因为该行应该输出 4 个变量而不是 3 个。因此它应该是:

abc = [
        [(3.8, 101.39), (1.597, 103.613), (4.7, 100.83), (4.804, 101.52)],
        [(3.845, 101.396), (1.56, 103.613), (4.71, 100.9), (4.454, 101.161)],
        [(3.847, 101.3), (1.59, 103.63), (4.76, 100.89), (4.45, 101.16)] 
      ]

a, b, c, d= map(list, zip(*abc))

print(a) # [(3.8, 101.39), (3.845, 101.396), (3.847, 101.3)]
print(b) # [(1.597, 103.613), (1.56, 103.613), (1.59, 103.63)]
print(c) # [(4.7, 100.83), (4.71, 100.9), (4.76, 100.89)]
print(d) # [(4.804, 101.52), (4.454, 101.161), (4.45, 101.16)]

此外,您从未定义过什么变量de,所以我不确定我是否确切知道您想要实现的目标,但我希望这就是您想要做的。


推荐阅读