gpt4 book ai didi

python - 将多个列表压缩在一起?

转载 作者:行者123 更新时间:2023-12-02 11:25:27 25 4
gpt4 key购买 nike

我有以下代码:

zero = ('one','two','three','four')

one = '1.0,4.5,5.5,*,2.5,2.8,5.3,*,1.75,4.0,5.75,*,1.0,4.1,5.1,*,2.25,4.75,7.0,*,2.2,5.4,7.6,*,3.0,3.0,6.0,*,1.2,3.55,4.75,*,1.5,4.66666666667,6.16666666667,*,2.0,3.0,5.0,*,1.5,4.33333333333,5.83333333333,*,2.33333333333,2.8,5.13333333333,*,1.5,4.0,5.5,*,1.0,4.66666666667,5.66666666667,*,1.5,3.0,4.5,*,2.5,3.5,6.0,*,1.33333333333,3.4,4.73333333333,*,2.0,3.0,5.0,*,1.5,2.2,3.7,*,3.0,2.7,5.7,*,'
two = '2.8,*,2.6,*,3.66666666667,*,4.0,*,1.5,*,2.16666666667,*,2.2,*,2.5,*,2.83333333333,*,2.8,*,2.83333333333,*,2.0,*,1.75,*,3.0,*,3.0,*,1.4,*,3.75,*,1.6,*,3.5,*,2.8,*,'

test = one, two = one.split("*,"),two.split("*,")
print test
print("\n".join("".join(x) for x in zip(one,two)))

这使我可以将两个列表压缩在一起,以得到如下所示的输出:
1.0,4.5,5.5,2.8,
2.5,2.8,5.3,2.6,
1.75,4.0,5.75,3.66666666667,
1.0,4.1,5.1,4.0,
2.25,4.75,7.0,1.5,
2.2,5.4,7.6,2.16666666667,
3.0,3.0,6.0,2.2,
1.2,3.55,4.75,2.5,
1.5,4.66666666667,6.16666666667,2.83333333333,
2.0,3.0,5.0,2.8,
1.5,4.33333333333,5.83333333333,2.83333333333,
2.33333333333,2.8,5.13333333333,2.0,
1.5,4.0,5.5,1.75,
1.0,4.66666666667,5.66666666667,3.0,
1.5,3.0,4.5,3.0,
2.5,3.5,6.0,1.4,
1.33333333333,3.4,4.73333333333,3.75,
2.0,3.0,5.0,1.6,
1.5,2.2,3.7,3.5,
3.0,2.7,5.7,2.8,

我一直在尝试几种不同的方法来使用for循环将许多列表压缩在一起,但是我没有任何运气。是否可以同时压缩两个以上的列表,还是有实现我想要的更好的方法?

谢谢

最佳答案

zip()采用可变数量的参数。 zip(one, two, three)可以工作,依此类推,只要您希望传递尽可能多的参数即可。

>>> zip([1, 2, 3], "abc", [True, False, None])
[(1, 'a', True), (2, 'b', False), (3, 'c', None)]

如果您有未知数量的可迭代项(例如,它们的列表),则可以使用拆包运算符( *)来对可迭代项进行解包(用作参数):
>>> iterables = [[1, 2, 3], "abc", [True, False, None]]
>>> zip(*iterables)
[(1, 'a', True), (2, 'b', False), (3, 'c', None)]

(这通常称为解压缩,因为它将使操作反向- a == zip(*zip(a)))

关于python - 将多个列表压缩在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com