トップページ -> Python入門 基礎編 -> メソッドについて学ぼう

メソッドについて学ぼう!

前回まででstr型 int型 float型 list型 dict型 set型 tuple型の7つのデータ型を扱ってきました. それぞれのデータ型の特徴は覚えられましたか? 今回はデータ型に付随する便利な操作 「メソッド」について解説していきます. メソッドは (データ).(メソッド名)のようにして呼び出します. 以下では,それぞれのデータ型に対していくつかのメソッドを紹介します. ここでは,すべてのメソッドを覚えられなくてもいいので「メソッドというものがあるということが理解できる」,「メソッドの使い方が分かる」 を目標にしましょう.使っているうちに覚えられます. 内容が多くなってしまいましたので,難しく感じた方はリストのメソッドにだけ目を通してみてください. 演習問題ではリストの操作をすることでメソッドの使い方を身に付けていただきます.

  1. str型に対するメソッド

    文字列型に対しては便利な操作が色々用意されています. 個人的にはそんなに使用しないですが,思いつくものをいくつか紹介しておきます. もちろんすべて覚える必要はありません. "mikami.3345"という文字列に対して操作を行ってみます.
    
    word = "Mikami.3345"
    print(word[4]) # 4番目の文字を出力する
    print("upper:",word.upper()) # 大文字に変換する
    print(word) # upper によって元の文字列は変化していない
    print("lower:",word.lower()) # 小文字に変換する
    print("count:",word.count("m")) # 指定された文字を数え上げる
    print("find:",word.find("m")) # 指定された文字で一番左側にあるものの要素番号を返す
    
    文字列のメソッド
    上から順にみていきましょう.
    メソッドではありませんが,文字列型もリストやタプルと同じように要素番号を使って文字にアクセスすることができます.
    1. upper

      word.upper() と書くことで文字列 word を大文字に変換したものを返します.元の文字列は変化しません.
    2. lower

      word.lower() と書くことで文字列 word を小文字に変換したものを返します.こちらも元の文字列は変化しません.
    3. count

      word.count() と書くことで指定された文字が文字列の中に何個含まれるかを返します.
    4. find

      word.find() と書くことで指定された文字を左から確認していき一番最初に現れるときの要素番号を返します. 見つからない場合は-1を返します.
  2. list型に対するメソッド

    list型に対するメソッドは実用的なものが多く頻繁に使います. ぜひ,覚えてみてください.
    
    my_list = [1,2,3,4,5,6,3]
    my_list2 = [11,12,13]
    my_list.append(50) # 50 を追加する
    print("A:",my_list)
    
    a = my_list.pop() # 一番右の要素を削除して取り出す
    print("B:",a)
    
    my_list.insert(1,100) # リストの1番目に100を挿入する
    print("C:",my_list)
    
    print("D:",my_list.index(3))
    
    my_list.remove(3) # 3を削除する
    print("E:",my_list)
    
    my_list.extend(my_list2) # my_list の後ろに my_list2をくっつける
    print("F:",my_list)
    
    my_list.sort() # 昇順(小さい順)にソートする
    print("G:",my_list)
    
    my_list.sort(reverse=True) # 降順(大きい順)にソートする
    print("H:",my_list)
    
    my_list.clear() # リストを初期化する
    print("I:",my_list)
    
    リストのメソッド
    上から順に確認していきましょう.
    1. append

      my_list.append(x) と書くことでmy_listの一番右側(以後,一番後ろと呼びます)にxを追加します. 注意していただきたいのが,文字列型に対するメソッドと違い元のリスト自身に変化が起きています.
    2. pop

      my_list.pop() と書くことで一番後ろの要素を削除して返します. 引数は必要ありません.引数に要素番号を与えることでその要素を削除し取り出すこともできます.
    3. insert

      my_list.insert(a,b) と書くことでリストのa番の要素となるようにbを挿入します. 言い換えればa番目の要素の前にbを挿入します.
    4. index

      my_list.index(x) と書くことでリストの一番左側にあるxの要素番号を返します. リストの中にない要素を指定した場合はエラーが起こります.
    5. remove

      my_list.remove(x) と書くことでリストの一番左側にあるxを削除します. リストの中にない要素を引数に指定するとエラーを返します.
    6. extend

      list1.extend(list2) と書くことでlist1 の後ろにlist2を結合します. list1 は変化しますが,list2は変化しません.
    7. sort

      my_list.sort() と書くことでリストを昇順(小さい順)にソートします. my_list.sort(reverse=True)と書くことで降順(大きい順)にもソートできます.
    8. clear

      my_list.clear() と書くことでリストを初期化できます. もっとも my_list = [] と書いても初期化できますが…
    より詳しいリストの操作に関しては今後紹介しますが,これだけでも色々できますね. リストのメソッドは頻出なので書いているうちに覚えられると思います.
  3. dict型に対するメソッド

    dict型についても色々なメソッドがあります. 現段階では詳しく解説することができないのですが,こんなものがあるのか, と眺めてみてください.繰り返し処理のところで解説します.
    
    my_dict = {"apple":100,"orange":120,"banana":80,"cherry":60}
    my_dict2 = {"lemon":70,"melon":180}
    
    print("A:",my_dict.keys()) # キーのみを取り出す
    
    print("B:",my_dict.values()) # 値のみを取り出す
    
    a = my_dict.pop("banana") # banana を削除し,bananaの値を返す
    print("C:",a)
    
    my_dict.update(my_dict2) # my_dict に my_dict2を追加する
    print("D:",my_dict)
    
    my_dict.clear() # dictを初期化する
    print("E:",my_dict)
                    
    辞書型のメソッド
    上から順に見ていきましょう.
    1. keys

      my_dict.keys() と書くことでキーの一覧を返します.
    2. values

      my_dict.values() と書くことで値の一覧を返します.
    3. pop

      my_dict.pop(x) と書くことで キーx を削除し,xの値を返します.
    4. update

      dict1.update(dict2) と書くことでdict2 のキーと値をdict1 に追加します. dict2は変化しません.
    5. clear

      my_dict.clear() と書くことでdictを初期化します.
    6. keys values によって返されるオブジェクトについては繰り返し処理の章で改めて解説します.
  4. set型に対するメソッド

    set型についてもいくつかのメソッドがあります. 集合の操作と集合の演算がメソッドとなっています. 集合に関する用語については覚えられたら覚えるくらいでかまいません.
    
    set_A = {0,1,2,3,4,5}
    set_B = {4,5,6,7,8,9}
    
    set_A.add(8) # 集合A に 8 を追加する
    print("A:",set_A)
    
    set_A.remove(2) # 集合A から 2を取り除く
    print("B:",set_A)
    
    print()
    
    print("集合A:",set_A)
    print("集合B:",set_B)
    
    print()
    
    print("和集合:",set_A.union(set_B)) # 和集合:集合A と 集合B をくっつけたもの
    
    print("積集合:",set_A.intersection(set_B)) # 積集合: 集合A と 集合B のいずれにも含まれるもの
    
    print("差集合:",set_A.difference(set_B)) # 差集合: 集合A から 集合B の要素を取り除いたもの
    
    print("排他的論理和:",set_A.symmetric_difference(set_B)) # 排他的論理和: どちらか一方にしか含まれない要素
                    
    集合型のメソッド
    ここで言う「含まれる」は 「ある要素がある集合に属している状態」を指します. 言葉について気にならない人は気にしないでください. 上から順にみていきましょう. 最初の二つが集合に対する操作 後ろの4つが集合の演算です.
    1. add

      set_A.add(x) と書くことで set_A に x を追加できます. 既に set_A に含まれている要素を指定した場合は何も起きません.(重複を許さないため)
    2. remove

      set_A.remove(x) と書くことで set_A から x を削除できます. set_A に含まれていない要素を指定した場合はエラーが起こります.
    3. union

      集合の演算に関するメソッドです. set_A.union(set_B) と書くことで2つの集合の和集合(くっつけたもの)を返していますね. set_A | set_B と書くことでも同じ結果が得られます.(set_A + set_B ではないことに注意 )
    4. intersection

      set_A.intersection(set_B) と書くことで set_A, set_B のいずれにも含まれる要素の集合を返します. set_A & set_B と書くことでも同じ結果が得られます.
    5. difference

      set_A.difference(set_B) と書くことで set_A から set_B に含まれる要素を取り除いた集合を返します. set_A - set_B と書くことでも同じ結果が得られます.
    6. symmetric_difference

      set_A.symmentric_difference(set_B) と書くことでどちらか一方の集合にしか含まれない要素の集合を返します. set_A ^ set_B と書くことでも同じ結果が得られます・
    add remove は集合に関する操作ですので頻繁に使います. 集合の演算に関するメソッドについては演算子でもメソッドでも使いやすいほうを使って構いません.
  5. tuple型に対するメソッド

    タプルは要素の変更ができないため内容を操作するメソッドはありません. 個人的にはそんなに使いません.
    
    my_tuple = (1,2,3,4,5,1,2,3,4,5)
    
    print(my_tuple.index(5)) # 引数と一致する一番左側の要素の要素番号を返す
    
    print(my_tuple.count(5)) # 引数と一致する要素を数え上げる.
                    
    タプルのメソッド
    1. index

      my_tuple.index(x) と書くことでxと一致する一番左側の要素の要素番号を返します. タプルに含まれない要素を指定した場合はエラーが起きます
    2. count

      my_tuple.count(x) と書くことでxと一致する要素を数え上げます.

それでは,最後に演習問題を解いてみましょう. メソッドの使い方さえ理解できていれば,そんなに難しくないですよ.

演習問題

  1. 1,2,3,4,5,6,7,8,9,10 を要素とするリストを作ってください.
  2. append を使ってリストの要素に5を追加してください.
  3. remove を使って7を削除してください.
  4. sort を使ってリストを降順に並べ替えてください.
  5. リストの7番目の要素を教えてください.(要素番号は0から始まります)

演習問題のヒント

メソッドは オブジェクト.メソッド名() のように使うことを思い出しましょう. リストは my_list = [(要素1),(要素2)] のように定義するのでしたね.

演習問題の解答例


my_list = [1,2,3,4,5,6,7,8,9,10]
my_list.append(5) # 5を追加
my_list.remove(7) # 7を削除
my_list.sort(reverse=True) # 降順に並べ替え reverse=True に注意
print(my_list)
print(my_list[7]) # 7番目の要素を表示
        

今回はメソッドについて学びました. 色々ありましたが,まずはリストのメソッドから覚えると色々な操作ができるようになりますよ. 次回からはいよいよプログラミングの花形である条件分岐 繰り返し処理について学んでいきます. これらが扱えるようになると一気にプログラミングらしくなってくるので楽しみにしていてください.

<- 前へ戻る 【目次に戻る】 次へ進む ->