【Python入門】配列の使い方をマスターしよう!

Pythonで配列を使いたいけど、エラーメッセージばっかり出てしまう。

リスト、タプル、集合、辞書? C言語にはない用語がある上に使い方が良く分からない。

本記事では、そんな悩みを解決します。

リスト、タプル、集合、辞書について、要素の追加、変更、削除など基本的な使い方を解説していきます。

この記事はこんな人におすすめ!

  • Pythonの配列が分からない人
  • Pythonを学習している人
プログラミング言語の人気オンラインコース
目次

データ構造の種類

Pythonには4種類のデータ構造があります。それぞれの表記、特徴は下記表のとおりです。

種類 表記 変更 特徴
リスト [‘A’, ‘B’, … ] 可能 一般的な配列
タプル (‘A’, ‘B’, …) 不可 リストに比べて高速
集合 {‘A’, ‘B’, …} 可能 同じ値を重複して格納できない
辞書 {1:’A’, 2:’B’, …} 可能 検索がリスト、タプルより高速

リストの使い方

リストは一般的な配列です。

リストの作成、要素の追加・削除・挿入・ソート方法をマスターしましょう!

リストの作成

リストを作成するには、要素をカンマで区切り、[ ]で囲みます。

x = ['a', 'b', 'c']

要素の追加

要素を追加する方法はいくつかあります。自分に合った方法を使えるようにしましょう。他人が書いたコードを理解するためには、全部覚えておいた方が良いです。

x += ['d']
x.append('d')
x.extend('d')

どれも x に ‘d’ が追加される結果となります。

% 実行結果
['a', 'b', 'c', 'd']

要素の削除

要素を削除する方法も複数あります。

del x[1]
x.pop(1)

リストの要素は0から始まりますので、1を指定すると’b’が削除されます。

% 実行結果
['a', 'c', 'd']

要素の挿入

要素を所定の位置に挿入するには、insertを使います。第1引数にインデックス、第2引数に値を指定します。

x.insert(1, 'f')

2番目の要素に’f’が追加されました。

% 実行結果
['a', 'f', 'c', 'd']

ソート

要素を昇順に並べるには、sort関数を使います。

x.sort()

アルファベット順に並べることが出来ます。

% 実行結果
['a', 'c', 'd', 'f']

降順に並べるには、引数にreverse=Trueと記述します。

x.sort(reverse=True)

降順に並びます。

% 実行結果
['f', 'd', 'c', 'a']
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座

タプルの使い方

タプルは変更不可のデータ構造のため、リストのように要素の追加、削除、挿入は出来ないです。そのため、タプルに関する関数はほぼないです。内容を変更する必要のないときに使用しましょう。

タプルの作成

タプルを作成するには、要素をカンマで区切り、( )で囲みます。

x = ('a', 'b', 'c')

集合の使い方

集合は指定した値が含まれているか判定する場合に使います。

集合の作成

集合を作成するには、要素をカンマで区切り、{ }で囲みます。

x = {'a', 'b', 'c'}
同じ値を重複して格納すること出来ないことに注意しましょう。
x = {'a', 'a', 'c'}

値が重複した集合を作成しようとすると

% 実行結果
{'a', 'c'}

となります。

もし、空集合を作成したいときはset関数を使えばよいです。

x = set()

要素の追加

以下は集合の要素を追加する方法です。

x.add('d')
x |= {'d'}

’d’が追加されますが、最後尾の要素にはならなく順不同となります。

% 実行結果
{'d', 'a', 'c', 'b'}

要素の削除

集合の要素を削除する方法もいくつかあります。

x.remove('a')
x.discard('a')
x -= {'a'}

これらを実行するとaが集合から削除されます。

% 実行結果
{'d', 'c', 'b'}

集合を全削除するにはclear関数を使いましょう。

x.clear()

これを実行するとxは空集合になりましたね。

% 実行結果
set()

値が含まれるか判定

集合は指定の値が含まれているか判定できることが特徴です。判定にはinとnot inを使います。

この判定を所属検査演算(メンバーシップテスト演算)と呼びます。

fruitsという集合を用意し、’banana’がfruitsに含まれているか判定してみます。

fruits = {'banana', 'apple', 'strawberry'}
'banana' in fruits

‘banana’はfruitsに含まれていますのでTrueが返ってきます。

% 実行結果
True

次にある値が集合に含まれていないか判定してみます。’melon’がfruitsに含まれてないか判定してみると

'melon' not in fruits

‘melon’はfruitsに含まれていないのでTrueが返ってきますね。

%実行結果
True

集合の演算

集合は、複数の集合から新しい集合を作り出すことができます。

集合x, yを次のように定義し、新しい集合を演算してみます。

x = {'a', 'b', 'c'}
y = {'b', 'c', 'd'}

集合の演算は下表のものがあります。実行結果も示しました。

演算説明実行結果
x | y和集合: 集合xまたは集合yに含まれる要素の集合{‘b’, ‘c’, ‘a’, ‘d’}
x & y積集合: 集合xかつ集合yに含まれる要素の集合{‘c’, ‘b’}
x – y差集合: 集合xから集合yに含まれる要素を削除した集合{‘a’}
x ^ y対称差: 集合xまたは集合yの片方に含まれる要素の集合 {‘a’, ‘d’}

辞書の使い方

辞書はキーと値の組み合わせを格納出来るデータ構造です。使用用途は実際の辞書とほとんど同じです。

国語辞典を例にして説明すると、キーは用語、値は意味に相当します。

キーは重複して格納することが出来ません。2つの同じ用語が含まれる国語辞典なんて存在しませんよね。どちらの意味が正しいか混乱してしまいます。

値は重複しても問題ないです。「登山」、「山登り」など用語は違うが、意味が同じ同義語が存在しますよね。値の重複が許されないと同義語を表現することが出来ません。

国語辞典は用語を検索し、意味を調べます。この使い方と同様、辞書はキーを検索し、そのキーに対応する値を取得することが出来ます。

辞書の作成

辞書を作成するには、集合と同様、要素をカンマ(,)で区切り、{ }で囲みます。要素はキーと値をコロン(:)で区切りましょう。

fruits_dict = {'banana': 'バナナ', 'apple': 'りんご', 'strawberry': 'いちご'}

要素の追加

辞書への要素追加です。[ ]内にはキーを指定。値はx[‘キー’]に代入します。

fruits_dict['melon'] = 'メロン'

‘メロン’が追加されます。

% 実行結果
{'banana': 'バナナ', 'apple': 'りんご', 'strawberry': 'いちご', 'melon': 'メロン'}

要素の削除

要素の削除は次の方法があります。

del fruits_dict['melon']
fruits_dict.pop('melon')

メロンのキーと値を削除できます。

% 実行結果
{'banana': 'バナナ', 'apple': 'りんご', 'strawberry': 'いちご'}

要素の取得

値の取得

キーを検索し、このキーに対応する値を取得する方法です。

fruits_dict['apple']
fruits_dict.get('apple')

キー’apple’に対応する値’りんご’が取得できます。

% 実行結果
'りんご'

キー一覧の取得

キー一覧を取得するには

fruits_dict.keys()
% 実行結果
dict_keys(['banana', 'apple', 'strawberry'])

値一覧の取得

値一覧を取得するには

fruits_dict.values()
% 実行結果
dict_values(['バナナ', 'りんご', 'いちご'])

ソート

辞書をソート(並び替え)するにはsorted関数を使います。キーでソートする方法、値でソートする方法を説明します。

キーでソート

sorted(fruits_dict.items())

キーをアルファベット順に並べることができます。

% 実行結果
[('apple', 'りんご'), ('banana', 'バナナ'), ('strawberry', 'いちご')]
sorted関数の戻り値はリストです。

値でソート

sorted(fruits_dict.items(), key=lambda x:x[1])

値を昇順に並び替えることが出来ます。

% 実行結果
[('strawberry', 'いちご'), ('apple', 'りんご'), ('banana', 'バナナ')]

まとめ

リスト、タプル、集合、辞書について、要素の追加、変更、削除など基本的な使い方を解説しました。

私がPythonを学習し始めたとき、ベース知識はC言語でした。そのため、リスト、タプル、集合、辞書といった分からない用語が突然出てきて混乱しました。

今回の記事が皆さんのPython学習に役立つなら幸いです。

独りでPython学習するのは大変だなと思う方は、書籍やスクールを活用するのも手です。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

大学で機械工学を学んだ後、製造業で働く40代の会社員です。
IT系、電気系を学んでこなかった機械系人間が、ゲーム制作、電子工作に奮闘してます。
極力低コストでものづくりを楽しむのがモットー。

目次