在Python中,我可以得到"反向"拉链的拉链
a = [1,2,3]
b = [4,5,6]
c = zip(a,b) # [(1,4),(2,5),(3,6)]
如果我从c
开始,我可以使用以下内容获取a
和b
c = [(1,4),(2,5),(3,6)]
a, b = zip(*c)
然而,在Ruby中,似乎只有zip
方法,因此我不确定我能以完全相同的方式做到这一点......
在Ruby中是否有某种类似的好习惯用于解压"解压缩"列表清单?
我意识到你可以做到
c[0].zip(*c[1..-1])
基本上在语义上是相同的东西,但它看起来并不像这样直观...
答案 0 :(得分:10)
您可以使用Array#transpose。
a = [1,2,3]
# => [1,2,3]
b = [4,5,6]
# => [4,5,6]
c = a.zip(b)
# => [[1,4],[2,5],[3,6]]
d, e = c.transpose
# => [[1,2,3], [4,5,6]]
d
# => [1,2,3]
e
# => [4,5,6]