どうも!リョクちゃです。
今回はPowerShellでもコレクション型である辞書やリストを扱ってみようという事で、
記事にしていきます。
使えるようになると更なるステップアップが見込めるので、
これを機会に学んでみてはいかがでしょうか?
ちなみに前回はこちら
目次
辞書を扱う
PowerShellでPythonのように辞書型を扱いたい場合、
PowerShellではハッシュテーブルといわれるデータ構造を使って表すことができます。
ハッシュテーブルは簡単に言うと、Key(キー)を使用して、
各値(バリュー)を格納する構造を指します。
まさに、Pythonの辞書型とほぼ同じですね。
以下、ハッシュテーブルを辞書として説明していきます。
辞書を作成する
PowerShellでは、以下の記述で宣言をすることができます。
空の辞書を作成
@マークと{}波かっこを使って表すことができます。
例)
1 |
$testDict = @{} |
辞書への値を追加
宣言した変数に値を追加していくには、以下の記述で行われます。
と記述することで、値の追加ができます。
例)
1 |
$testDict.add("Apple", 123) |
ここまでを実際にPowerShellの画面で確認してみます。
辞書に追加したキーへアクセスするには
追加したキーへのアクセスは、以下の記述で確認ができます。
辞書型変数名[“Key”]
と記述することでアクセスができます。
例)
1 |
$testDict["Apple"] |
複数キーをキーごとに処理したい場合
辞書型変数に複数のキーを登録していて、キーごとに処理をしたい場合があると思います。
この場合、どのようにしたら効率的にできるでしょうか?
答えは、foreach文を使って1つずつ取り出すことができてしまいます。
例えば、以下のような辞書型変数があるとします。
1 2 3 4 5 |
$testDict = @{} $testDict.add("Apple", 123) $testDict.add("Orange", 256) $testDict.add("Bacon", 333) $testDict.add("Grape", 286) |
これを1つずつ、取り出していくには地道な方法もありますが、
foreach文を使って取り出していきます。
1 2 3 4 5 6 7 8 |
foreach ($key in $testDict.Keys) { Write-Host $key } # 1回目 : Apple # 2回目 : Orange # 3回目 : Bacon # 4回目 : Grape |
と書くことで、1つずつ辞書型変数のキーを取り出すことができます。
$keyの部分は、$testDict.Keysの中に含まれるキーの情報が辞書に含まれている
キーの数分実行されます。
この場合、foreach文では4回繰り返されます。
まとめ
PowerShellにおける辞書について紹介をしていきました。
使えるようになると強力なスキルになるので、ぜひ参考に身に付けてもらえたらと思います。
ファイルごとに処理を分けたい場合や実行させたいバッチを管理したい場合なんかに
使えるかなと思います。
他にもxmlファイルを作る際に使えたりもするので、おススメです。
xmlについては、別途記事にまとめていきます。
最後までお読みいただき、ありがとうございます。