タグ別アーカイブ: Loop

Shell Script: for文 – ワードリストに変数、コマンドを使用

以下のシェルスクリプトはfor文のワードリストに文字列変数を使用したもの。文字列はスペース区切でパラメータ変数に格納されloopする。また、ワードリストにバッククォートで括ったコマンドを指定すると、そのコマンドの実行結果がパラメータ変数に渡される。

続きを読む

Shell Script: for文 – ワードリストを順に出力

シェルスクリプトのfor文の一般式は下記の通り。

ワードリストの要素をパラメータ変数に代入しdo~done間をワードリストの要素分ループする。

続きを読む

Python: 正規表現の基本 – 最長、最短マッチング

直前の文字、メタ文字を繰り返しマッチングさせる量指定記号である「*」「+」「?」などは、テキスト中にその繰り返しパターンがマッチする箇所が複数ある場合は、通常最後にマッチした箇所をオブジェクトに記録します。このような最長マッチングに対して、マッチング箇所が複数の場合に最初にマッチした箇所を記録する最短マッチング方法があります。

最短マッチングを行う量指定記号は最長マッチングの記号の末尾に「?」を付けるだけです。すなわち、最長の量指定が「*」「+」「?」であるのに対して、最短マッチングは「*?」「+?」「??」となります。それでは、以下のコードで確認してみましょう。

ソースコード

re.searchはre.matchと異なり、パターンをテキスト文字列の先頭以外にもマッチさせます。

実行結果

リファレンス

Python: リスト中の文字列を大文字⇔小文字に変換

文字列を比較する際に、大文字・小文字を区別したくない場合があります。その時は、比較する文字列を大/小文字列のどちらかに統一しておく、という手があります。Pythonでは大文字・小文字変換メソッドlower()、upper()はstringオブジェクトに組み込まれています。
今回は、その使い方と実際に使用する状況に近いデータ構造、ここでは変換対象文字列がリスト中の要素である場合を想定し、for文とリストコンプリヘンション(リスト内包表記)の両表記を以下に示します。

ソースコード

実行結果

List Comprehensions ならワンライナーで書けるってのは地味に良いですね。
話変わりますが、Rubyにもイテレータやブロックを用いた簡略記法がありましたね。アレはアレで、応用しやすいものです。

チュートリアル

リファレンス

Python: if/for文でのin演算子の各オブジェクト毎の評価

if/for文中で使われるin演算子の評価はオブジェクトごとに微妙に変化します。あやふやなままにしておくのもなんですし、ここで、以下のオブジェクトに対するif/for文中の評価を実際に確認してみましょう。

  • 文字列
  • リスト
    • 数値のリスト
    • 文字列のリスト
    • 辞書のリスト
  • 辞書

if/for文 + in 文字列

実行結果

if/for文 + in リスト

実行結果

if/for文 + in 辞書

実行結果

チュートリアル

リファレンス