こんにちは、iijm-lです🌻
pythonのコーディングを始めてから1年が経ちました✨
だいぶ慣れてきましたが、慢心せずに立派なパイソニスタになりたい!🐰
パイソニスタの皆様にお聞きします。
組み込み関数ってどれくらい覚えていますでしょうか?
私はopen()
、format()
、len()
、min()
、 max()
、range()
辺りはよく使います✨
Python3の公式ドキュメントを読んでみると、
なんと69個の組み込み関数が載っていました⭐️
そんなにたくさん知らない気がする!
そこで、今回は復習がてら
超個人的!意外と便利なPython組み込み関数・3選
について、アメリエフ社員ならではのバイオインフォマティクス的な活用方法も交えながら、発表します🥳
3位 all()とany()
all()
all()
は、引数に指定したオブジェクトの全ての要素がTrue
であれば、True
を返す、という関数です。逆に1つでもFalse
な要素があれば、False
を返します。
>>> print(all([True, True, True])) True >>> print(all([True, False, True])) False
Pythonではbool
(True
/False
)を使った判定をよく行われますが、あるリスト内の全要素に対する条件判定が一気にできるのは、便利だし使いどころがありそうですね。
例えば、内包表記と組み合わせることで、数字や文字列の判定もスマートに行えます。
num_list = [40, 39, 35, 40, 38] if all(i<=30 for i in num_list): print('全要素は30以上の値です!') else: print('全要素は30以上の値ではありません...')
このような判定系関数は、バイオインフォマティクスで使うとすると、解析データのクオリティチェックに使えそうな予感がしますね。
any()
any()
は、 先述のall()
の逆で、引数に指定したオブジェクトの要素のうち、1つでもTrue
であれば、True
を返す、という関数です。逆に、全ての要素がFalse
であれば、False
を返します。
これもall()
と同じくらい使えそう!
>>> print(any([True, False, False])) True >>> print(any([False, False, False])) False
2位 zip()
zip()
関数を使うと、複数のオブジェクトを同時にforループで処理することができます。
>>> fruit_list = ['apple', 'banana', 'cherry'] >>> color_list = ['red', 'yellow', 'red'] >>> for fruit, color in zip(fruit_list, color_list): ... print(fruit, color) ... apple red banana yellow cherry red
バイオインフォマティクスでも複数のデータを同時に処理することはよくあります。例えば、ペアエンドリードのシーケンスデータ等は2つで1セットなので、基本的にはzip()
に入れて処理すると楽です。
1位 enumerate()
enumerate()
は、forループの引数に指定したオブジェクトの要素と同時に、カウントを取得することができます。
通常のループ処理で、カウントしたい場合は以下のようになるかと思います。
>>> fruit_list = ['apple', 'banana', 'cherry'] >>> count = 0 >>> for fruit in fruit_list: ... print(count, fruit) ... count += 1 ... 0 apple 1 banana 2 cherry
enumerate()
関数を使うと、スマートに同じことができますよ!
>>> fruit_list = ['apple', 'banana', 'cherry'] >>> for count, fruit in enumerate(fruit_list): ... print(count, fruit) ... 0 apple 1 banana 2 cherry
バイオインフォマティクスで使うときも、シーケンスリードの数や体細胞変異の数など、カウントする処理は多くありますので重宝しています。
また先述のzip()
と組み合わせる技はよく知られています。私も何度もお世話になりました💫
>>> for count, (fruit, color) in enumerate(zip(fruit_list, color_list)): ... print(count, fruit, color) ... 0 apple red 1 banana yellow 2 cherry red
まとめ
3選と言いつつも、4つご紹介してしまいました。
組み込み関数は、importなしで使えて便利なものばかりなので、覚えておいて損はないですね😃
pythonの扱いが呼吸と同じようにできるその日まで、エリートパイソニスタへの道はまだまだ続く、、、(続)