ホームページ コンピューターのチュートリアル コンピュータ知識 集合の共通部分と差分を計算する Perl プログラムを作成する

集合の共通部分と差分を計算する Perl プログラムを作成する

Jan 09, 2024 pm 08:25 PM

交差差分セットを作成するための Perl プログラム

厳密を使用;

utf8を使用します;

fa、「a.txt」を開くか、「a.txt を開けません」;

FB を開くか、「b.txt」を選択するか、「b を開けません」を選択してください;

chomp (私の @A = ) ;

chomp (私の @B = ) ;

aを閉じる; bを閉じる;

私 (@みんな、@AHasBNot、@BHasANot、%count);

@A ごとに

$count{A}{$_}=1;

$count{B}{$_}=1 @B ごとに;

このコードでは、ループとハッシュ テーブルを使用して、キーのリストを反復処理し、指定されたキーの値だけカウンターをインクリメントできます。このコードは 2 つのハッシュ テーブル (A と B) を使用し、それらのキーを反復処理します。次に、ループ内でカウンター (C) と foreach ステートメントを使用することで、指定されたキーの値だけカウンター値をインクリメントできます。

@Everyone has it = grep { $count{C}{$_} == 2 } Keys %{$count{C}}; ハッシュ テーブル $count{C} の値が 2 に等しいことを意味しますキーをフィルタリングして除外し、@everyone 配列に保存します。このステートメントは、ハッシュ テーブルをフィルタリングし、条件を満たす要素のみを保持するために使用されます。

foreach (@A, @B) { $count{A}{$_}; $count{B}{$_}; }

@A Yes B No このコードは、Perl 言語の grep 関数と sort 関数を使用して、ハッシュ配列 %count から A キーに対応する値に 1 回だけ出現する要素を選択し、アルファベット順にソートします。

このコードでは、Perl 言語の `grep` 関数を使用して、配列 B には一度出現するが配列 A には出現しない要素をフィルターで除外します。具体的な実装では、B 配列の各要素をループし、ハッシュ テーブル `%count` を使用して各要素の出現数を記録します。最後に、B 配列をソートし、`grep` 関数を使用して条件を満たす要素を除外します。最後に、フィルター処理された結果を配列として返します。

print("共通: @全員が持っています$/A-のみ: @Aのみが持っています$/B-のみ: @Bのみが持っています");

php 2 つの 2 次元配列間の差分セットを決定する方法

$a=[

["sbnumber" => "0001-00001", "name" => "新安裁判所"],

["sbnumber" => "0001-00002", "name" => "中正源"],

["sbnumber" => "0001-00003", "name" => "プラグマティック ガーデン"]

["sbnumber" => "0001-00004", "name" => "サービスコート"],

{ "sbnumber": "0001-00005", "名前": "張三" }

];

$b=[

["sbnumber" => "0001-00001", "name" => "新安裁判所"],

["sbnumber" => "0001-00002", "name" => "中正源"],

["sbnumber" => "0001-00003", "name" => "プラグマティック ガーデン"]

["sbnumber" => "0001-00004", "name" => "サービスコート"],

{"sbnumber": "0001-00007", "name": "李思"}

];

$cmp=関数($av, $bv){

$r は、$av['sbnumber'] と $bv['sbnumber'] を比較して得られた結果です。

return $r===0 ? strcmp($av['name'],$bv['name']) : $r;

};

次のコードを使用すると、配列 $b とは異なる配列 $a の値を取得し、それらを配列 $c に保存できます: $c = array_values(array_udiff($a, $b, $cmp) );

$d=array_udiff($b, $a, $cmp);

foreach($d as &$dv) $c[]=$dv;

unset($d);

var_dump($c);array(2) {

[0]=> 配列(2) { ["sbnumber"]=> 文字列(15) "0001-00005" ["名前"]=> 文字列(6) "張三" }

[1]=> 配列(2) { ["sbnumber"]=> 文字列(15) "0001-00007" ["名前"]=> 文字列(6) "李思" }

2 つの差分セットを比較して結果をマージするには、コンテンツを比較するためのカスタム ルールを使用する必要があります。異なる内容 (名前など) に基づいてレコード間の違いを判断し、レコードを比較できます。

以上が集合の共通部分と差分を計算する Perl プログラムを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windowsエラーコードを解く方法(0x00000004) Windowsエラーコードを解く方法(0x00000004) Mar 11, 2025 am 11:26 AM

この記事では、Windows "Invalid_data_access_trap"(0x00000004)エラー、重要なBSODについて説明します。 故障したドライバー、ハードウェアの誤動作(RAM、ハードドライブ)、ソフトウェアの競合、オーバークロック、マルウェアなどの一般的な原因を調査します。 問題

ENE SYSメンテナンス:システムをスムーズに実行するためのヒントとコツ ENE SYSメンテナンス:システムをスムーズに実行するためのヒントとコツ Mar 07, 2025 pm 03:09 PM

この記事では、ENE SYSシステムを維持するための実用的なヒントを提供します。 過熱やデータの破損などの一般的な問題に対処し、定期的なクリーニング、バックアップ、ソフトウェアの更新などの予防策を提供します。 テーラードメンテナンスs

ENE SYSの実装中に避けるべき5つの一般的な間違い ENE SYSの実装中に避けるべき5つの一般的な間違い Mar 07, 2025 pm 03:11 PM

この記事では、ENE SYSの実装における5つの一般的な落とし穴が特定されています。計画不足、不十分なユーザートレーニング、不適切なデータ移行、セキュリティの無視、およびテスト不足です。 これらのエラーは、プロジェクトの遅延、システムの障害につながる可能性があります

レジストリを編集するにはどうすればよいですか? (警告:注意して使用してください!) レジストリを編集するにはどうすればよいですか? (警告:注意して使用してください!) Mar 21, 2025 pm 07:46 PM

記事では、誤った編集からWindowsレジストリ、予防策、バックアップ方法、潜在的な問題の編集について説明します。主な問題:システムの不安定性と不適切な変化によるデータ損失のリスク。

Windows設定でドライブヘルス警告を修正する方法を発見する Windows設定でドライブヘルス警告を修正する方法を発見する Mar 19, 2025 am 11:10 AM

Windowsの設定でのドライブヘルス警告はどういう意味ですか?ディスク警告を受け取ったときに何をすべきですか?このPHP.CNチュートリアルを読んで、この状況に対処するための段階的な指示を取得してください。

Windowsでサービスを管理するにはどうすればよいですか? Windowsでサービスを管理するにはどうすればよいですか? Mar 21, 2025 pm 07:52 PM

記事では、システムの健康のためのWindowsサービスの管理、開始、停止、サービスの再起動、安定性のためのベストプラクティスなどについて説明します。

どのアプリケーションがENE.SYSを使用していますか どのアプリケーションがENE.SYSを使用していますか Mar 12, 2025 pm 01:25 PM

この記事では、ENE.SYSがRealTekの高解像度オーディオドライバーコンポーネントとして識別します。 オーディオハードウェアの管理における機能を詳しく説明し、オーディオ機能における重要な役割を強調しています。 また、この記事は、ユーザーの正当性の確認についてもガイドしています

なぜドライバーはasio.sysロードしないのですか なぜドライバーはasio.sysロードしないのですか Mar 10, 2025 pm 07:58 PM

この記事では、Windows ASIO.SYSオーディオドライバーの障害について説明します。 一般的な原因には、破損したシステムファイル、ハードウェア/ドライバーの非互換性、ソフトウェアの競合、レジストリの問題、マルウェアが含まれます。トラブルシューティングには、SFCスキャン、ドライバーUpdaが含まれます

See all articles