Pythonの辞書

辞書はキーと値のペアでデータ値を格納するために使用されます。

辞書は順序があり(Pythonバージョン3.7以降)、変更可能であり、重複を許容しません。

辞書は波括弧で書かれ、キーと値を持っています:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict)

辞書のアイテム

辞書のアイテムは順序があり、変更可能であり、重複を許容しません。

辞書のアイテムはキーと値のペアで表示され、キー名を使用して参照することができます。

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(thisdict["brand"])

順序付けられているかどうか?

Pythonバージョン3.7以降、辞書は順序があります。Python 3.6以前では、辞書は順序がありません。

辞書が順序付けられているということは、アイテムに定義された順序があることを意味し、その順序は変更されません。

変更可能

辞書は変更可能であり、辞書が作成された後にアイテムを変更、追加、削除することができます。

重複を許容しない

辞書は同じキーを持つ2つのアイテムを持つことはできません:

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964,
  "year": 2020
}
print(thisdict)

辞書の長さを取得する

辞書に含まれるアイテムの数を知るには、len()関数を使用します。

print(len(thisdict))

辞書のアイテム – データ型

辞書のアイテムの値は任意のデータ型にすることができます。

thisdict = {
  "brand": "Ford",
  "electric": False,
  "year": 1964,
  "colors": ["red", "white", "blue"]
}

type()

Pythonの観点からは、辞書はデータ型「dict」として定義されています。

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
print(type(thisdict))

dict()コンストラクタ

新しい辞書を作成するには、dict()コンストラクタを使用することもできます。

thisdict = dict(name = "John", age = 36, country = "Norway")
print(thisdict)

Pythonコレクション(配列)

Pythonプログラミング言語には4つのコレクションデータ型があります:

コレクションタイプを選ぶ際には、そのタイプの特性を理解することが役立ちます。特定のデータセットに適したタイプを選ぶことは意味の保持につながり、効率やセキュリティの向上にもつながるかもしれません。

Pythonのセット

セットは複数のアイテムを1つの変数に格納するために使用されます。

セットはPythonの4つの組み込みデータ型の1つで、データのコレクションを格納するために使用されます。他の3つはリスト、タプル、辞書であり、それぞれ異なる特性と使用法を持っています。

セットは波括弧で書かれます:

thisset = {"apple", "banana", "cherry"}
print(thisset)

注意:セットは順序付けられていないため、アイテムが表示される順序は保証されません。

セットのアイテム

セットのアイテムは順序付けられておらず、変更できず、重複した値を許容しません。

順序付けられていない

セットが順序付けられていないことは、セット内のアイテムに定義された順序がないことを意味します。

セットのアイテムは毎回異なる順序で表示され、インデックスやキーで参照することはできません。

変更不可

セットのアイテムは変更できないため、セットが作成された後にアイテムを変更、追加、削除することはできません。

セットが作成されたら、そのアイテムを変更することはできませんが、アイテムを削除したり新しいアイテムを追加することはできます。

重複を許容しない

セットは同じ値を持つ2つのアイテムを持つことができません。

thisset = {"apple", "banana", "cherry", "apple"}
print(thisset)

注意:セット内では、Trueと1、Falseと0は同じ値と見なされ、重複として扱われます。

thisset = {"apple", "banana", "cherry", True, 1, 2}
print(thisset)

thisset = {"apple", "banana", "cherry", False, True, 0}
print(thisset)

セットの長さを取得する

セットに含まれるアイテムの数を知るには、len()関数を使用します。

thisset = {"apple", "banana", "cherry"}
print(len(thisset))

セットのアイテム – データ型

セットのアイテムは任意のデータ型にすることができます。

set1 = {"apple", "banana", "cherry"}
set2 = {1, 5, 7, 9, 3}
set3 = {True, False, False}

文字列、整数、ブール値などの異なるデータ型の組み合わせを含むセットを作成することができます。

set1 = {"abc", 34, True, 40, "male"}

type()

Pythonの観点からは、セットはデータ型「set」として定義されています。

myset = {"apple", "banana", "cherry"}
print(type(myset))

set()コンストラクタ

新しいセットを作成するには、set()コンストラクタを使用することも可能です。

thisset = set(("apple", "banana", "cherry")) # ダブルラウンドブラケットに注意してください
print(thisset)

Pythonコレクション(配列)

Pythonプログラミング言語には4つのコレクションデータ型があります:

コレクションタイプを選ぶ際には、そのタイプの特性を理解することが役立ちます。特定のデータセットに適したタイプを選ぶことは意味の保持につながり、効率やセキュリティの向上にもつながるかもしれません。

Pythonのタプル

タプルは複数のアイテムを1つの変数に格納するために使用されます。

タプルはPythonの4つの組み込みデータ型の1つで、データのコレクションを格納するために使用されます。他の3つはリスト、セット、辞書であり、それぞれ異なる特性と使用法を持っています。

タプルは丸括弧で書かれます:

thistuple = ("apple", "banana", "cherry")
print(thistuple)

タプルのアイテム

タプルのアイテムは順序付けられており、変更できなく、重複した値を許容します。

タプルのアイテムはインデックスで指定され、最初のアイテムはインデックス[0]、2番目のアイテムはインデックス[1]といった具合になります。

順序付け

タプルが順序付けられているということは、アイテムには定義された順序があり、その順序は変更されないことを意味します。

変更不可

タプルは変更できないため、作成後にアイテムを変更、追加、削除することはできません。

重複を許容

タプルはインデックスされているため、同じ値のアイテムを持つことができます。

thistuple = ("apple", "banana", "cherry", "apple", "cherry")
print(thistuple)

タプルの長さ

タプルに含まれるアイテムの数を確認するには、len()関数を使用します。

thistuple = ("apple", "banana", "cherry")
print(len(thistuple))

1つのアイテムを持つタプルの作成

1つのアイテムを持つタプルを作成するには、アイテムの後ろにカンマを追加する必要があります。そうしないとPythonはそれをタプルと認識しません。

thistuple = ("apple",)
print(type(thistuple))

# タプルではない
thistuple = ("apple")
print(type(thistuple))

タプルのアイテム – データ型

タプルのアイテムは任意のデータ型にすることができます。

tuple1 = ("apple", "banana", "cherry")
tuple2 = (1, 5, 7, 9, 3)
tuple3 = (True, False, False)

タプルには文字列、整数、ブール値などの異なるデータ型の組み合わせを含めることができます。

tuple1 = ("abc", 34, True, 40, "male")

type()

Pythonの観点からは、タプルはデータ型「tuple」として定義されています。

mytuple = ("apple", "banana", "cherry")
print(type(mytuple))

tuple()コンストラクタ

新しいタプルを作成する際には、tuple()コンストラクタを使用することも可能です。

thistuple = tuple(("apple", "banana", "cherry")) # ダブルラウンドブラケットに注意してください
print(thistuple)

Pythonコレクション(配列)

Pythonプログラミング言語には4つのコレクションデータ型があります:

コレクションタイプを選ぶ際には、そのタイプの特性を理解することが役立ちます。特定のデータセットに適したタイプを選ぶことは意味の保持につながり、効率やセキュリティの向上にもつながるかもしれません。

Pythonのリスト

リストは複数のアイテムを1つの変数に格納するために使用されます。

リストはPythonの4つの組み込みデータ型の1つで、データのコレクションを格納するために使用されます。他の3つはタプル、セット、辞書であり、それぞれ異なる特性と使用法を持っています。

リストは角括弧を使用して作成されます:

thislist = ["apple", "banana", "cherry"]
print(thislist)

リストのアイテム

リストのアイテムは順序付けられており、変更可能で、重複した値を許容します。

リストのアイテムはインデックスで指定され、最初のアイテムはインデックス[0]、2番目のアイテムはインデックス[1]といった具合になります。

順序付け

リストが順序付けられているということは、アイテムには定義された順序があり、その順序は変更されないことを意味します。

リストに新しいアイテムを追加すると、その新しいアイテムはリストの末尾に配置されます。

注意:一部のリストメソッドは順序を変更することがありますが、一般的にはアイテムの順序は変わりません。

Tip
リストは順序付けられていますが、一部の操作で順序が変更されることがあるため注意が必要です。

変更可能

リストは変更可能であり、作成後にリスト内のアイテムを変更、追加、削除することができます。

重複を許容

リストはインデックスされているため、同じ値のアイテムを持つことができます。

thislist = ["apple", "banana", "cherry", "apple", "cherry"]
print(thislist)

リストの長さ

リストに含まれるアイテムの数を確認するには、len()関数を使用します。

thislist = ["apple", "banana", "cherry"]
print(len(thislist))

リストのアイテム – データ型

リストのアイテムは任意のデータ型にすることができます。

list1 = ["apple", "banana", "cherry"]
list2 = [1, 5, 7, 9, 3]
list3 = [True, False, False]

リストには文字列、整数、ブール値などの異なるデータ型の組み合わせを含めることができます。

list1 = ["abc", 34, True, 40, "male"]

type()

Pythonの観点からは、リストはデータ型「list」として定義されています。

mylist = ["apple", "banana", "cherry"]
print(type(mylist))

list()コンストラクタ

新しいリストを作成する際にlist()コンストラクタを使用することも可能です。

thislist = list(("apple", "banana", "cherry")) # ダブルラウンドブラケットに注意してください
print(thislist)

Pythonコレクション(配列)

Pythonプログラミング言語には4つのコレクションデータ型があります:

コレクションタイプを選ぶ際には、そのタイプの特性を理解することが役立ちます。特定のデータセットに適したタイプを選ぶことは意味の保持につながり、効率やセキュリティの向上にもつながるかもしれません。

Pythonの演算子

演算子は変数や値に対して操作を行うために使用されます。

以下の例では、+演算子を使用して2つの値を加算しています:

print(10 + 5)

Pythonでは演算子を次のグループに分けています:

Pythonの算術演算子

算術演算子は数値値と共に使用され、一般的な数学的操作を実行します:

演算子 名前
+ 加算 x + y
減算 x – y
* 乗算 x * y
/ 除算 x / y
% 剰余 x % y
** 指数 x ** y
// 切り捨て除算 x // y

Pythonの代入演算子

代入演算子は変数に値を代入するために使用されます:

演算子 同じ
= x = 5 x = 5
+= x += 3 x = x + 3
-= x -= 3 x = x – 3
*= x *= 3 x = x * 3
/= x /= 3 x = x / 3
%= x %= 3 x = x % 3
//= x //= 3 x = x // 3
**= x **= 3 x = x ** 3
&= x &= 3 x = x & 3
|= x |= 3 x = x | 3
^= x ^= 3 x = x ^ 3
>>= x >>= 3 x = x >> 3
<<= x <<= 3 x = x << 3
:= print(x := 3) x = 3
print(x)

Pythonの比較演算子

比較演算子は2つの値を比較するために使用されます:

演算子 名前
== 等しい x == y
!= 等しくない x != y
> より大きい x > y
< より小さい x < y
>= 以上 x >= y
<= 以下 x <= y

Pythonの論理演算子

論理演算子は条件文を組み合わせるために使用されます:

演算子 説明
and 両方の文がTrueの場合にTrueを返す x < 5 and x < 10
or 少なくとも1つの文がTrueの場合にTrueを返す x < 5 or x < 4
not 結果を反転し、Trueの場合はFalseを返す not(x < 5 and x < 10)

Pythonの同一性演算子

同一性演算子はオブジェクトを比較し、等しくないかどうかではなく、実際に同じオブジェクトであるかどうか(同じメモリ位置にあるかどうか)を確認します:

演算子 説明
is 両方の変数が同じオブジェクトである場合にTrueを返す x is y
is not 両方の変数が同じオブジェクトでない場合にTrueを返す x is not y

Pythonのメンバーシップ演算子

メンバーシップ演算子はオブジェクト内にシーケンスが存在するかどうかをテストするために使用されます:

演算子 説明
in 指定された値を含むシーケンスがオブジェクト内に存在する場合にTrueを返す x in y
not in 指定された値を含むシーケンスがオブジェクト内に存在しない場合にTrueを返す x not in y

Pythonのビット演算子

ビット演算子は(バイナリ)数値を比較するために使用されます:

演算子 名前 説明
& AND 両方のビットが1の場合、各ビットを1に設定します x & y
| OR 1つのビットが1の場合、各ビットを1に設定します x | y
^ XOR 1つのビットが1の場合、各ビットを1に設定します x ^ y
~ NOT すべてのビットを反転します ~x
<< 左シフト 右から0をプッシュして左にシフトし、左端のビットを落とします x << 2
>> 符号付き右シフト 左端のビットから左にコピーし、右端のビットを落とします x >> 2

演算子の優先順位

演算子の優先順位は、操作が実行される順序を示します。

例えば、最も優先順位の高いのはかっこで囲まれた部分で、かっこで囲まれた式は最初に評価される必要があります:

print((6 + 3) - (6 + 3))

例えば、乗算*の優先順位は加算+よりも高く、そのため乗算は加算よりも先に評価されます:

print(100 + 5 * 3)

優先順位の順序は以下の表に示されており、上から順に最も優先順位が高いものです:

演算子 説明
() かっこ
** 指数
+x, -x, ~x 単項プラス、単項マイナス、およびビットNOT
* / // % 乗算、除算、切り捨て除算、および剰余
+ – 加算と減算
<< >> ビット左シフトおよび右シフト
& ビットAND
^ ビットXOR
| ビットOR
== != > >= < <= is is not in not in 比較、同一性、およびメンバーシップ演算子
not 論理NOT
and 論理AND
or 論理OR

もし2つの演算子が同じ優先順位を持っている場合、式は左から右に評価されます:

print(5 + 4 - 7 + 3)

真偽値

真偽値はTrueまたはFalseのいずれかの値を表します。

プログラミングでは、しばしば式がTrueかFalseかを知る必要があります。

Pythonでは任意の式を評価し、TrueまたはFalseのどちらかの答えを得ることができます。

2つの値を比較すると、式が評価され、Pythonは真偽値の答えを返します:

print(10 > 9)
print(10 == 9)
print(10 < 9)

if文で条件を実行すると、PythonはTrueまたはFalseを返します:

a = 200
b = 33

if b > a:
  print("b is greater than a")
else:
  print("b is not greater than a")

値と変数の評価

bool()関数を使用すると、任意の値を評価してTrueまたはFalseを返すことができます。

文字列と数値を評価する:

print(bool("Hello"))
print(bool(15))

2つの変数を評価する:

x = "Hello"
y = 15

print(bool(x))
print(bool(y))

ほとんどの値はTrue

ほとんどの値は、何らかの内容を持っていればTrueと評価されます。

空でない文字列はTrueです。

0以外の数値はTrueです。

空でないリスト、タプル、セット、辞書はTrueです。

以下はTrueを返します:

bool("abc")
bool(123)
bool(["apple", "cherry", "banana"])

一部の値はFalse

実際には、空の値(()、[]、{}、””)、数値0、および値Noneを除いて、Falseと評価される値はほとんどありません。そしてもちろんFalseの値もFalseと評価されます。

以下はFalseを返します:

bool(False)
bool(None)
bool(0)
bool("")
bool(())
bool([])
bool({})

さらに、特定のクラスから作成されたオブジェクトで、__len__関数が0またはFalseを返す場合、そのオブジェクトもFalseと評価されます:

class myclass():
  def __len__(self):
    return 0

myobj = myclass()
print(bool(myobj))

関数は真偽値を返すことができます

真偽値を返す関数を作成することができます:

関数の答えを表示する:

def myFunction() :
  return True

print(myFunction())

関数の真偽の答えに基づいてコードを実行することができます:

関数がTrueを返す場合は”YES!”を、それ以外の場合は”NO!”を表示:

def myFunction() :
  return True

if myFunction():
  print("YES!")
else:
  print("NO!")

Pythonには、オブジェクトが特定のデータ型であるかどうかを判定するために使用できるisinstance()関数を含む多くの組み込み関数があります。

オブジェクトが整数かどうかをチェック:

x = 200
print(isinstance(x, int))

文字列

Pythonの文字列はシングルクォートまたはダブルクォートで囲むことができます。

‘hello’は”hello”と同じです。

print()関数を使って文字列リテラルを表示できます:

print("Hello")
print('Hello')

引用符の中の引用符

文字列の中で引用符を使用することができますが、その引用符は文字列を囲む引用符と一致しないようにしてください。

print("It's alright")
print("He is called 'Johnny'")
print('He is called "Johnny"')

文字列を変数に代入する

文字列を変数に代入するには、変数名の後に等号と文字列を続けます。

a = "Hello"
print(a)

複数行の文字列

3つの引用符を使って複数行の文字列を変数に代入することができます。

3つのダブルクォートを使用:

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)

または3つのシングルクォートを使用:

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)

注:結果には、コード内の位置に従って改行が挿入されます。

文字列は配列

多くの他のプログラミング言語と同様に、Pythonの文字列はユニコード文字を表すバイトの配列です。しかし、Pythonには文字型はなく、1つの文字は単に長さ1の文字列です。

角括弧を使って文字列の要素にアクセスできます。

位置1の文字を取得する(最初の文字は位置0です):

a = "Hello, World!"
print(a[1])

文字列のループ処理

文字列は配列なので、forループで文字列内の文字をループ処理できます。

“banana”という単語の文字をループ処理する:

for x in "banana":
  print(x)

Pythonのforループについては、コードラボJPのPython For Loops章で学ぶことができます。

文字列の長さ

文字列の長さを取得するには、len()関数を使用します。

len()関数は文字列の長さを返します:

a = "Hello, World!"
print(len(a))

文字列のチェック

特定のフレーズや文字が文字列に含まれているかどうかを確認するには、キーワードinを使用します。

次のテキストに”free”が含まれているかどうかを確認する:

txt = "The best things in life are free!"
print("free" in txt)

if文で使用:

“free”が含まれている場合のみ表示:

txt = "The best things in life are free!"
if "free" in txt:
  print("Yes, 'free' is present.")

含まれていないかをチェックする

特定のフレーズや文字が文字列に含まれていないかどうかを確認するには、キーワードnot inを使用します。

次のテキストに”expensive”が含まれていないかどうかを確認する:

txt = "The best things in life are free!"
print("expensive" not in txt)

if文で使用:

“expensive”が含まれていない場合のみ表示:

txt = "The best things in life are free!"
if "expensive" not in txt:
  print("No, 'expensive' is NOT present.")

変数の型を指定する

変数に型を指定したい場合があります。これはキャストを使って行うことができます。Pythonはオブジェクト指向言語であり、そのためプリミティブ型を含むデータ型を定義するためにクラスを使用します。

したがって、Pythonでのキャストはコンストラクタ関数を使用して行います:

整数:

x = int(1)   # xは1になる
y = int(2.8) # yは2になる
z = int("3") # zは3になる

浮動小数点数:

x = float(1)     # xは1.0になる
y = float(2.8)   # yは2.8になる
z = float("3")   # zは3.0になる
w = float("4.2") # wは4.2になる

文字列:

x = str("s1") # xは's1'になる
y = str(2)    # yは'2'になる
z = str(3.0)  # zは'3.0'になる

Pythonの数値型

Pythonには3つの数値型があります:

数値型の変数は、値を割り当てるときに作成されます:

x = 1    # int
y = 2.8  # float
z = 1j   # complex

Pythonで任意のオブジェクトの型を確認するには、type()関数を使用します:

print(type(x))
print(type(y))
print(type(z))

整数型 (int)

整数型は、正または負の小数なしの整数です。長さに制限はありません。

整数:

x = 1
y = 35656222554887711
z = -3255522

print(type(x))
print(type(y))
print(type(z))

浮動小数点数型 (float)

浮動小数点数型は、正または負の小数点を含む数値です。

浮動小数点数:

x = 1.10
y = 1.0
z = -35.59

print(type(x))
print(type(y))
print(type(z))

浮動小数点数は、10のべき乗を示すために “e” を含むこともできます。

浮動小数点数:

x = 35e3
y = 12E4
z = -87.7e100

print(type(x))
print(type(y))
print(type(z))

複素数型 (complex)

複素数は、虚数部分として “j” を使用して書かれます:

複素数:

x = 3+5j
y = 5j
z = -5j

print(type(x))
print(type(y))
print(type(z))

型変換

int(), float(), complex() メソッドを使用して、ある型から別の型に変換できます:

型を変換する:

x = 1    # int
y = 2.8  # float
z = 1j   # complex

# intからfloatに変換:
a = float(x)

# floatからintに変換:
b = int(y)

# intからcomplexに変換:
c = complex(x)

print(a)
print(b)
print(c)

print(type(a))
print(type(b))
print(type(c))

注:複素数を他の数値型に変換することはできません。

乱数

Pythonには乱数を生成するためのrandom()関数はありませんが、乱数を生成するための組み込みモジュールrandomがあります:

randomモジュールをインポートし、1から9までの乱数を表示します:

import random

print(random.randrange(1, 10))

組み込みデータ型

プログラミングにおいて、データ型は重要な概念です。

変数は異なる型のデータを格納でき、異なる型は異なることができます。

Pythonには以下の組み込みデータ型がデフォルトで存在します:

データ型の取得

type()関数を使用して、任意のオブジェクトのデータ型を取得できます:

変数xのデータ型を出力します:

x = 5
print(type(x))

データ型の設定

Pythonでは、変数に値を割り当てるとデータ型が設定されます:

データ型
x = "Hello World" str
x = 20 int
x = 20.5 float
x = 1j complex
x = ["apple", "banana", "cherry"] list
x = ("apple", "banana", "cherry") tuple
x = range(6) range
x = {"name" : "John", "age" : 36} dict
x = {"apple", "banana", "cherry"} set
x = frozenset({"apple", "banana", "cherry"}) frozenset
x = True bool
x = b"Hello" bytes
x = bytearray(5) bytearray
x = memoryview(bytes(5)) memoryview
x = None NoneType

特定のデータ型の設定

特定のデータ型を指定したい場合は、以下のコンストラクタ関数を使用できます:

データ型
x = str("Hello World") str
x = int(20) int
x = float(20.5) float
x = complex(1j) complex
x = list(("apple", "banana", "cherry")) list
x = tuple(("apple", "banana", "cherry")) tuple
x = range(6) range
x = dict(name="John", age=36) dict
x = set(("apple", "banana", "cherry")) set
x = frozenset(("apple", "banana", "cherry")) frozenset
x = bool(5) bool
x = bytes(5) bytes
x = bytearray(5) bytearray
x = memoryview(bytes(5)) memoryview