※さらに30日間返金保証ありなので、実質リスクゼロ。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
今回はpythonのリスト(配列)において覚えるべき 関数 ついて説明していきます。
リストとは?
リストとは、任意の要素からなるシーケンスです。
簡単に言うと、どのような要素をいくつでも持つことができる容器みたいなものです。
要素はpythonオブジェクト(pythonでは全てがオブジェクト)ならなんでも持つことができるので、非常に複雑な構造を作ることができます。
オブジェクトについての話は以下の記事で詳しく説明しているので見てみてください。
とにかく、リストを使うと複数の任意のデータを扱うことができるので、非常に便利なものです。
リストを使うメリットは?
リストを使うメリットは何でしょうか?
上でも述べた通り、まず第一に、大量の連続したデータを一気に扱うことができるということが挙げられるでしょう。
また、リストはミュータブルなので、状況によって中身を変更していくことができます。
つまりは、新しい要素を追加したり、いらない要素を削除したり、要素の順番を変更したりといった操作が可能だということです。
今回はこのようにリストを操作していく 関数 を紹介していきます。
上のようなメリットをまとめると、順序と内容が変わる可能性のある要素を順番に管理していきたい時にリストは約に立つと言えます。
リストはプログラミングをしていれば毎日のように出てくるデータ構造なのでここでしっかり使い方を覚えていきましょう。
リストを扱うために覚えるべき関数
それでは、リストを扱うための 関数 について1つずつ見ていきましょう。いずれも簡単なものなのでしっかり覚えていってください。
list()関数でリスト型へと変換する
list()関数を使うと、リスト型ではないデータ型のものをリスト型に変換することができます。
以下に例を挙げました。
>>>list('apple') ['a', 'p', 'p', 'l', 'e'] >>>tuple = ('dog','cat','cow') >>>list(tuple) ['dog', 'cat', 'cow']
1行目と2行目を見てください。list()関数の引数として、文字列appleを指定してあげると、1文字ずつのリストになっていることが分かります。
次に3行目以降を見てください。3行目ではまず、リストではなくてタプルが3つのデータを保持しています。
タプルとはリストと同じように複数のデータを扱うことができるのですがリストと違ってイミュータブル(変更不可能)なものです。
タプル構造にlist()関数を適用してあげるとリスト構造に変換されたことが分かると思います。
len()関数でリストの長さ(要素数)を取得する
len()関数を使うと、リスト内の要素数を得ることができます。
以下で例を見ていきましょう。
>>>fruits = ['apple','melon','cherry'] >>>len(fruits) 3
リストfruits内の要素数3が表示されているのが分かると思います。
実際にはリストの要素数が大きくなってきた時にこの関数は力を発揮します。
append()関数でリストの末尾に要素を追加する
append()関数を使うと、引数で指定した要素をリストの末尾に付け加えることができます。
記述の仕方はリストの名前を書いた後に、.(カンマ)をつけて、append(引数)としてあげればよいです。
以下に例を挙げていきます。
>>>fruits.append('grape') >>>print(fruits) ['apple', 'melon', 'cherry', 'grape']
引数としてgrapeを指定してあげると上のようにfruitsリストの末尾にgrapeが追加されるのが確認できるはずです。
insert()関数でオフセットを指定して要素を追加する
上のappend()関数ではリストに新たな要素を追加していきましたが、末尾に追加されるだけで、場所を指定することはできません。
insert()関数ではオフセットで要素を追加したい場所を指定していきます。
オフセットは1番左の要素を0、その右の要素を1、そのまた右の要素を2という風に数えていきます。
関数の記述の仕方はappend()関数と同じで、第一引数にオフセット値を、第二引数に追加したい要素を与えます。
以下に例を挙げていきます。
>>>fruits = ['apple','melon','cherry'] >>>fruits.insert(1,'grape') >>>fruits.insert(10000,'banana') >>>print(fruits) ['apple', 'grape', 'melon', 'cherry', 'banana']
最初リストfruitsにはappleとmelonとcherryしかないですが、2行目でオフセット値1でgrapeを追加し、3行目でオフセット値10000でbananaを追加すると、要素が指定した位置に追加されているのが分かると思います。
ちなみに、上のように要素数を超えるオフセット値が指定された時は、リストの一番右に追加されます。
remove()関数で値を指定して要素を削除する
リストの中から特定の要素を削除したい場合はremove()関数の引数で要素の名前を指定してあげます。
以下に例を挙げていきます。
>>>fruits = ['apple', 'grape', 'melon', 'cherry', 'banana'] >>>fruits.remove('apple') >>>print(fruits) ['grape', 'melon', 'cherry', 'banana']
remove()関数の引数でappleを指定するとリストからappleがなくなっているのが確認できると思います。
pop()関数でオフセットを指定して要素を削除する
pop()関数では、insert()関数と同じようにオフセットを指定します。
引数で指定したオフセットの要素を取り出し、削除してくれます。
以下で例を見ていきましょう。
>>>fruits = ['apple', 'grape', 'melon', 'cherry', 'banana'] >>>fruits.pop(0) 'apple' >>>print(fruits) ['grape', 'melon', 'cherry', 'banana'] >>>fruits.pop() 'banana' >>>print(fruits) ['grape', 'melon', 'cherry']
2行目でpop()関数でオフセット0を指定しているので、1番左の要素であるappleが取り出され、printI()で確認すると、リストから削除されていることが分かります。
次にpop()関数で引数を指定せずに実行すると、bananaがリストから取り出され、削除されています。
このようにpop()関数は引数なしで実行すると、1番左の要素が削除されるようになっています。
extend()関数でリストを結合する
extend()関数を使うと、2つのリストを1つに結合することができます。
引数に付け足したいリストの名前を指定すると、そのリストが末尾に結合されます。
以下で例を見ていきましょう。
>>>fruits = ['apple','melon','cherry'] >>>otherfruits = ['grape','banana'] >>>fruits.extend(otherfruits) >>>print(fruits)
最初にリストfruitsにはappleとmelonとcherryが入っています。
extend()関数の引数で、otherfruitsを指定すると、fruitsリストの末尾にotherfruitsリストの要素であるgrapeとbananaが結合されたのが確認できたはずです。
index()関数で要素を検索する
index()関数を使うと、引数で指定した要素のオフセット値を知ることができます。
以下で例を見ていきましょう。
>>>fruits = ['apple', 'grape', 'melon', 'cherry', 'banana'] >>>fruits.index('melon') 2
index()関数の引数にmelonを指定すると、しっかりmelonのオフセット値である2が出力されるのが確認されます。
sort()関数でリストの要素を並べ替える
sort()関数を使うと、リスト内の要素を順番に並べ替えることができます。
リストの要素が数値なら昇順に、リストの要素が文字列ならアルファベット順に並び替えられる。
以下で例を見ていきましょう。
>>>fruits = ['apple', 'grape', 'melon', 'cherry', 'banana'] >>>fruits.sort() >>>print(fruits) ['apple', 'banana', 'cherry', 'grape', 'melon']
sort()関数をリストfruitsに適用すると、確かにリスト内の果物がアルファベット順に整列しているのが分かります。
まとめ
今回はプログラムをしていれば必ずと言っていいほど頻繁に使うことになる、リストについて学んでいきました。
関数 の使い方はいずれも簡単ですが、数が多く忘れることもあると思うので、しっかり見直しておいてください。
今後も定期的にプログラミング系の記事を発信していくので、興味のある人はブックマークして見にきてくれると嬉しいです!!
※さらに30日間返金保証ありなので、実質リスクゼロ。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル