【问题标题】:How to unzip an Array?如何解压缩数组?
【发布时间】:2013-04-02 00:30:03
【问题描述】:

如何在 Ruby 中解压缩数组,如 Python 中的示例:

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zipped)
>>> x == list(x2) and y == list(y2)

【问题讨论】:

    标签: ruby arrays


    【解决方案1】:

    使用transpose:

    > zipped = x.zip(y)
    => [[1, 4], [2, 5], [3, 6]]
    > x2, y2 = zipped.transpose
    > x2
    => [1, 2, 3]
    > y2
    => [4, 5, 6]
    

    【讨论】:

    • 如果x.size > y.sizetranspose 不是zip 的倒数,因为它会将nils 添加到y2 的末尾。如果两个原件都不包含 nil,则使用 zipped.transpose.map(&:compact) 恢复原件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多