2013年8月21日水曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2)の14章(文字列処理とソート)の14.5(練習問題)2を解いてみる。

その他参考書籍

2.

コード(BBEdit)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use 5.016;
use utf8;
binmode STDOUT, ':utf8';
binmode STDIN, ':utf8';

my %last_name = qw{
    fred flintstone Wilma Flintstone Barney Rubble
    betty rubble Bamm-Bamm Rubble PEBBLES FLINTSTONE
};

my @sorted = sort {
    lc $last_name{$a} cmp lc $last_name{$b} or
    lc $a cmp lc $b
} keys %last_name;

for (@sorted) {
    say "$_ $last_name{$_}";
}

入出力結果(Terminal)

$ ./sample.pl
fred flintstone
PEBBLES FLINTSTONE
Wilma Flintstone
Bamm-Bamm Rubble
Barney Rubble
betty rubble
$

ちなみにpython3.3の場合。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
## Copyright (C) 2013 by kamimura
#-*- coding: utf-8 -*-

last_name = {'fred':'flintstone',
             'Wilma':'Flintstone',
             'Barney':'Rubble',
             'betty':'rubble',
             'Bamm-Bamm':'Rubble',
             'PEBBLES':'FLINTSTONE'}

sorted_first = sorted(last_name, key=lambda x:x.lower())
sorted_last = sorted(sorted_first, key=lambda x:last_name[x].lower())

for first in sorted_last:
    print("{0} {1}".format(first, last_name[first]))

入出力結果(Terminal)

$ ./sample.py
fred flintstone
PEBBLES FLINTSTONE
Wilma Flintstone
Bamm-Bamm Rubble
Barney Rubble
betty rubble
$

0 コメント:

コメントを投稿