【问题标题】:Perl : Sort array element in alphabetical orderPerl:按字母顺序对数组元素进行排序
【发布时间】:2019-07-08 20:56:17
【问题描述】:

我有一个大数组,我想按字母顺序对数组的所有元素进行排序。

在前面的子程序中,数组的元素被推送到 tc_reg 数组。

我有一个名为@tc_lane 的数组。当我打印数组的元素时,它看起来像这样

tx0_abc
rx0_fgw
ref_ghv
..

现在我想像这样对这个数组进行排序,

ref_ghv
rx0_fgw
tx_abc
..

【问题讨论】:

  • @arr = sort @arr; - 请删除这个问题。
  • @SeanBright 为什么要删除?这是一个简单的问题,但稍微看一下,我看不到它重复的任何现有问题;大多数排序问题都在处理更复杂的情况。
  • Sort Perl array in place?的可能重复
  • 这是对数组进行排序,您可以在其中引用数组而不是数组变量
  • 来自链接的答案:“Perl 允许使用成语@arr = sort @arr 对数组进行就地排序。” - 这正是您给出的答案。所以我不确定问题是什么?

标签: arrays regex perl


【解决方案1】:

如果你愿意

rx0_fgw
rx10_fgw
rx2_fgw

使用

my @sorted = sort @unsorted;

如果你愿意

rx0_fgw
rx2_fgw
rx10_fgw

使用

use Sort::Key::Natural qw( natsort );

my @sorted = natsort @unsorted;

【讨论】:

  • 这两种解决方案都假定唯一的字母是小写的 ASCII 字母。在其他情况下可能需要其他解决方案。
【解决方案2】:

你只需要这样做:

@tc_lane = sort @tc_lane;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    相关资源
    最近更新 更多