A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
方法1:
AGに属すものだけのリスト抽出→ソート
BGに属すものだけのリスト抽出→ソート→上のAGだけのソート済みのリストに追加
CGに属すものだけのリスト抽出→ソート→上のAGとBGをソート済みのリストに追加
と分割してやる。
方法2:
['AG','tanaka']
['AG','abe']
等とグループ+名前の状態でリストにする
→グループを優先するようなソートを行う
→グループと名前を分割する
No.2
- 回答日時:
テキストを配列に入れれば、グループごとのスライスソートができると思います。
なお、グループ名は大文字で、グループ内のテキストは大文字がないものとしています。use strict;
my @list = <DATA>;
foreach my $end (0 .. $#list) {
if ($end == $#list or $list[$end+1] =~ /[A-Z]/) {
my ($start) = grep { $list[$_] =~ /[A-Z]/ } reverse 0 .. $end;
@list[$start+1 .. $end] = sort @list[$start+1 .. $end];
}
}
print @list;
__DATA__
AG
tanaka
abe
kaneda
BG
hayama
oota
endou
CG
kawai
gennda
hirata
No.3
- 回答日時:
個々の作業を安直にコードにして、
グループ名が来るたびに結果を吐き出す方法を採ってみました。
use strict;
my @names = ();
my $groupName = '';
while (<DATA>) {
if (/^[A-Z]+$/) {# グループが始まるなら
flush($_);# これまでの分を集計し、グループ名を更新
}else{
push @names, $_;# 名前は配列に追加
}
}
flush('');# 入力の終了時にも集計
sub flush {
if ($#names >= 0) {# 集計中の名前があれば
print $groupName;
map { print; } sort @names;# ソートして表示
@names = ();
}
$groupName = shift;# 新しいグループの名前
}
__DATA__
AG
tanaka
abe
kaneda
BG
hayama
oota
endou
CG
kawai
gennda
hirata
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの50音順ソートを全ての行列に適用するには? 4 2022/12/05 11:28
- Excel(エクセル) excel マクロでグループ内でソートしたい。見出しが上手くいきません。 7 2022/05/22 08:31
- その他(プログラミング・Web制作) sortの優先キーについて(スプレッドシート) 1 2023/01/17 17:59
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) Excel 効率的な名簿と得点の管理の仕方 8 2022/08/07 08:15
- Excel(エクセル) 重複しているか否かをソートせずに判断する方法ありますか? 2 2022/07/06 21:16
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、写真のプログラムをどう直せ 2 2022/07/09 21:13
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- C言語・C++・C# メインプログラムに#include <algorithm>を書いて、 そのメインプログラムが // 3 2023/05/02 11:24
- Excel(エクセル) Excelのソート(並べ替え) 2 2022/05/15 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
openした後、closeしないでプロ...
-
perlをバージョンアップしたら...
-
テキストファイルで提出とは?
-
Perlで時間の計算
-
アルファベットに付いて質問し...
-
perlでリテラル値はメモリにど...
-
TeraPadエディターの操作方法に...
-
Perlのエラーについてご教授く...
-
AI sisterとは、偽物の人ですか?
-
ファイルアイコンの左下に緑の□...
-
perlのrequireの動き方について...
-
perlのプログラミング 部分入れ...
-
Strawberry Perl for Windows ...
-
perl 初等プログラミングについて
-
arduino の割り込み処理について
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
bashスクリプト
-
perlプログラミング 空白行削除
-
perlで2次元配列をサブルーチ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
access adoのトランザクション
-
gitでコミットするタイミングが...
-
ActivePerl+SQLServerでトラン...
-
VB + oracle oo4o でのトラン...
-
漢字を含む文字列のソート
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
今日の日付が入った行のデータ...
-
VBA プロシージャの名前の取得
-
キャッシュを使わずにSELECTを...
-
sqlplusでヘッダーが付かない
-
Accessの数値から時間に変換す...
-
ODBCリンクの際にACCESSでは読...
-
Statement ignored というエラー
-
SQLで部分的にGROUP BYしたいとき
-
PL/SQLカーソルの2重FORループ...
-
SQLサーバで和暦から西暦に変換...
-
likeとsubstrの使いわけについて
-
全角空白のTRIMができない...
おすすめ情報