ロゴ メインコンテンツへ
RSSフィード
「ソフトウェア開発」に関連する記事一覧

Pythonメモ リストの探索

2010/10/27
(この記事の文字数: 962)

Pythonスクリプトを書いていて、他の言語と比べて便利だと思った仕様があったのでメモしておきます。

for a in b:

ではbの中にある要素をaに格納しながらループを行います。このinを次のようにifで使うと別の意味になります。

if a in b:

これはbの中にaという要素があるかどうかを判定して、あればTrueを返すという意味になります。

これを利用するとリスト同士の比較などが楽に行えます。
例えば、objGrp1とobjGrp2の両方にある文字列を調べてlistに書き出したいとき、次のように簡単に書くことができます。


objGrp1=['rice', 'tomato',

         'bread', 'banana'];

objGrp2=['meat', 'rice', 

         'banana', 'apple',

         'milk', 'orange']; 



list=[];



cnt = 0;

for obj in objGrp1:

 if obj in objGrp2:

  list.append(obj);

  cnt=cnt+1;



print(list);



# Result:

# ['rice', 'banana'] 



ちなみにMELで書くと、次のようにforループが2回出てくる。


string $objGrp1[]={"rice", "tomato",

                   "bread", "banana"};

string $objGrp2[]={"meat", "rice", 

                   "banana", "apple",

                   "milk", "orange"};



string $list[];



int $cnt=0;

for($obj1 in $objGrp1){

 for($obj2 in $objGrp2){

  if(gmatch($obj2, $obj1){

   $list[$cnt]=$obj1;

   $cnt++;

  }

 }

}

print($list);



// Result:

// rice

// banana



C言語などに精通した人間にはMELの構文の方がわかりやすいですが、Pythonのように簡単に書ける方法もわかってしまえば、一人でプログラムを作る分にはとても便利です。

ただし、開発をチームで行う場合、チーム内にPythonに精通していない人がいると、こういった書き方が逆に混乱を招いてしまいます。あえてPythonのような特殊な構文を使わない方がミスがなくなる可能性があるので、そういった場合はよく考えて使うことが必要になります。


  このエントリーをはてなブックマークに追加  

<<「ソフトウェア開発」の記事一覧に戻る

<<「ソフトウェア開発」の次の記事

コメント(0 件)



コンテンツロード: 0.0076 sec
Copyright(C)2006-2024 puarts All Rights Reserved