gpt4 book ai didi

perl - Perl 中的数组排序

转载 作者:行者123 更新时间:2023-12-04 17:04:55 26 4
gpt4 key购买 nike

我是 Perl 的新手,遇到了(可能很简单)数组排序问题。

我继承了一些 Perl 代码,这些代码将文本文件中的行读取到三个一维数组 (x,y,z) 中。我希望能够使用其中一个维度作为键对这些数组进行排序,并重新排序其他两个维度以匹配。

例如,如果我的输入是:

  • @x = (1, 3, 2)
  • @y = (11,13,12)
  • @z = (21,23,22)

  • 我按 x 排序,我希望结果是:
  • @x = (1, 2, 3)
  • @y = (11,12,13)​​
  • @z = (21,22,23)

  • 如果这让生活更轻松,我可以将三个一维数组合并为一个二维数组。

    最佳答案

    没有必要将所有数组合并在一起。使用 sort获取 @x 中元素的正确索引顺序:

    @sort_by_x = sort { $x[$a] <=> $x[$b] } 0 .. $#x;    #   ==> (0, 2, 1)

    然后将该索引排序应用于任何其他数组:
    @x = @x[@sort_by_x];
    @y = @y[@sort_by_x];
    @z = @z[@sort_by_x];

    关于perl - Perl 中的数组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4605516/

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