概要
知らなかったのでメモメモ。ドキュメントみたら、ちゃんと書いてあった。。。
大抵の言語では、文字列などに startswith / endswith みたいなメソッドが存在していますが
pythonの場合は、タプルも受け付けてくれる。何気にすごい便利です。いちいちループしなくていいし。
注意点として、タプルじゃないと駄目です。リストを渡すとエラーになります。
サンプル
In [3]: l = ['Javascript', 'Java', 'CSharp', 'Python', 'Ruby', 'Go', 'Rust'] In [4]: l Out[4]: ['Javascript', 'Java', 'CSharp', 'Python', 'Ruby', 'Go', 'Rust'] In [5]: suffix = ('t',) In [6]: [x for x in l if x.endswith(suffix)] Out[6]: ['Javascript', 'Rust'] In [7]: suffix = ('t', 'a', 'n') In [8]: [x for x in l if x.endswith(suffix)] Out[8]: ['Javascript', 'Java', 'Python', 'Rust'] In [9]: suffix2 = list(suffix) In [10]: [x for x in l if x.endswith(suffix2)] --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-10-377dff11f00d> in <module>() ----> 1 [x for x in l if x.endswith(suffix2)] <ipython-input-10-377dff11f00d> in <listcomp>(.0) ----> 1 [x for x in l if x.endswith(suffix2)] TypeError: endswith first arg must be str or a tuple of str, not list
参考情報
4. 組み込み型 — Python 3.6.3 ドキュメント
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場