Perl 정렬 불규칙 중첩 해시

Jad

불규칙한 해시가 있습니다 (다른 레이블을 지정하는 방법을 모르겠습니다)

my %hash = (
      'BlackBerryOS' => {
                          '6.0' => 9201,
                          '7' => 5896,
                          '10' => 9140,
                          '4.1' => 5395,
                          '4.6' => 6536
                        },
      'iOS' => {
                 '8' => 9327,
                 '3.0' => 4112,
                 '5.0' => 8579,
                 '4.0' => 14953,
                 '6.0' => 12007,
                 '7.0' => 13162
               },
      'AndroidOS' => {
                       '4.2' => 167501,
                       '2.3.4' => 7889,
                       'x' => 473602,
                       '4.3' => 44551,
                       '4.1.2' => 90984
                     }
    );

이 해시를 가장 깊은 수준의 값에 따라 정렬하고 싶습니다. 정렬하고 인쇄하여 이와 같은 결과를 얻으려면 어떻게해야합니까?

AndroidOS      x     473602
AndroidOS      4.2   167501
AndroidOS      4.1.2 90984
AndroidOS      4.3   44551
iOS            4.0   14953
iOS            7.0   13162
iOS            6.0   12007
iOS            8     9327
BlackBerryOS   6.0   9201
BlackBerryOS   10    9140
iOS            5.0   8579
AndroidOS      2.3.4 7889
BlackBerryOS   4.6   6536
BlackBerryOS   7     5896
BlackBerryOS   4.1   5395
iOS            3.0   4112
오른쪽 배

해시는 순서가 지정되지 않았으므로 먼저 순서가 지정된 구조 (예 : 배열)로 변환해야합니다.

my @data;
for my $os (keys %hash) {
    for my $version (keys %{$hash{$os}}) {
        push @data, { os => $os, version => $version, n => $hash{$os}->{$version} };
    }
}

그런 다음 정렬은 간단합니다.

@data = sort { $b->{n} <=> $a->{n} } @data;

보고 :

for (@data) {
    print "$_->{os}\t$_->{version}\t$_->{n}\n";
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Perl : 키별로 정렬 된 중첩 해시 값을 어떻게 얻습니까?

분류에서Dev

중첩 된 Perl 해시

분류에서Dev

Perl : 중첩 된 해시

분류에서Dev

중첩 된 값으로 해시 정렬

분류에서Dev

Perl 검사 중첩 해시 참조

분류에서Dev

Perl을 사용한 해시 키 정렬?

분류에서Dev

불규칙한 Numpy 행렬

분류에서Dev

여러 조건으로 중첩 된 해시 정렬

분류에서Dev

배열 내부에 중첩 된 해시 정렬

분류에서Dev

불규칙한 위해 2 열을 기반으로 행을 정렬하는 방법 Mysql-?

분류에서Dev

순환 규칙 호출로 인해 Antlr3, 비 LL (*) 결정으로 중첩 목록 구문 분석

분류에서Dev

해시 배열 또는 해시 해시의 해시 값으로 Perl 정렬

분류에서Dev

Perl은 중첩 된 해시 값을 얻습니다.

분류에서Dev

최대 중첩을 위해 두 이진 행렬 정렬

분류에서Dev

Perl에서 값별로 해시 해시 정렬 문제

분류에서Dev

Perl에서 배열 배열의 해시 해시 정렬

분류에서Dev

해시 Perl의 내부 키 해시 정렬

분류에서Dev

Pandas에서 불규칙한 시계열에 대한 가중 평균 생성

분류에서Dev

불규칙한 열이있는 Python의 중첩 목록 조작

분류에서Dev

중첩 정렬-SQL

분류에서Dev

Python의 중첩 sort (), 동시 다중 속성 함수 정렬

분류에서Dev

중첩 된 해시 맵을 정렬하는 방법은 무엇입니까?

분류에서Dev

중첩 해시에서 그룹 기준 및 정렬 기준 사용

분류에서Dev

Python에서 중첩 된 불규칙 목록 (고유 한 하위 목록 길이 및 객체 유형)의 정수 최대 값

분류에서Dev

Python의 중첩 정규식

분류에서Dev

정규식 결과 중첩

분류에서Dev

정규식 결과 중첩

분류에서Dev

중첩 정규식 대체

분류에서Dev

중첩 된 Perl 해시에 가입하려면 어떻게해야합니까?

Related 관련 기사

뜨겁다태그

보관