「Pythonの基礎 - タプルの作成と操作」の版間の差分
ナビゲーションに移動
検索に移動
細 (Wiki がページ「タプルの作成と操作(Python)」を「Pythonの基礎 - タプルの作成と操作」に、リダイレクトを残さずに移動しました) |
細 (文字列「</source>」を「</syntaxhighlight>」に置換) |
||
(同じ利用者による、間の1版が非表示) | |||
7行目: | 7行目: | ||
タプルを作成するには丸括弧()を使用する。この中に、カンマで要素を区切る。<br> | タプルを作成するには丸括弧()を使用する。この中に、カンマで要素を区切る。<br> | ||
タプル名 = (要素1, 要素2, 要素3, ...)という形になる。また、空のタプルを作成するには、丸括弧()のみで宣言する。<br> | タプル名 = (要素1, 要素2, 要素3, ...)という形になる。また、空のタプルを作成するには、丸括弧()のみで宣言する。<br> | ||
< | <syntaxhighlight lang="python"> | ||
t1 = (1, 3, 5, 3, 7, 5) | t1 = (1, 3, 5, 3, 7, 5) | ||
t2 = 2, 7, 8, 3, 9, 1 | t2 = 2, 7, 8, 3, 9, 1 | ||
20行目: | 20行目: | ||
(2, 7, 8, 3, 9, 1) | (2, 7, 8, 3, 9, 1) | ||
() | () | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
タプルも要素にインデックスが割り当てられている。<br> | タプルも要素にインデックスが割り当てられている。<br> | ||
このインデックスを使用して、要素を抽出・スライスすることができる。<br> | このインデックスを使用して、要素を抽出・スライスすることができる。<br> | ||
< | <syntaxhighlight lang="python"> | ||
t = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100) | t = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100) | ||
print(t[2]) | print(t[2]) | ||
32行目: | 32行目: | ||
30 | 30 | ||
(40, 50, 60, 70, 80) | (40, 50, 60, 70, 80) | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
要素が1つだけのタプルを作成する場合、後ろにカンマを付けることでタプルと認識する。<br> | 要素が1つだけのタプルを作成する場合、後ろにカンマを付けることでタプルと認識する。<br> | ||
< | <syntaxhighlight lang="python"> | ||
x = (200,) | x = (200,) | ||
y = 300, | y = 300, | ||
44行目: | 44行目: | ||
(200,) | (200,) | ||
(300,) | (300,) | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
51行目: | 51行目: | ||
タプルには、index関数とcount関数がある。<br> | タプルには、index関数とcount関数がある。<br> | ||
以下の例では、index関数はタプルの要素にある整数値2が1番目のインデックスに存在し、count関数はタプルの要素に整数値4が3つあることを表す。<br> | 以下の例では、index関数はタプルの要素にある整数値2が1番目のインデックスに存在し、count関数はタプルの要素に整数値4が3つあることを表す。<br> | ||
< | <syntaxhighlight lang="python"> | ||
t = (1, 2, 4, 6, 8, 5, 2, 7, 4, 4) | t = (1, 2, 4, 6, 8, 5, 2, 7, 4, 4) | ||
print(t.index(2)) | print(t.index(2)) | ||
59行目: | 59行目: | ||
1 | 1 | ||
3 | 3 | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
===== タプルの結合 ===== | ===== タプルの結合 ===== | ||
タプルは要素の操作はできないが、タプル同士の結合を行うことができる。<br> | タプルは要素の操作はできないが、タプル同士の結合を行うことができる。<br> | ||
以下の例では、2つのタプルのそれぞれの要素が、1つのタプルの要素として結合されている。<br> | 以下の例では、2つのタプルのそれぞれの要素が、1つのタプルの要素として結合されている。<br> | ||
< | <syntaxhighlight lang="python"> | ||
t1 = (1, 2, 3) | t1 = (1, 2, 3) | ||
t2 = (10, 20, 30) | t2 = (10, 20, 30) | ||
71行目: | 71行目: | ||
# 出力 | # 出力 | ||
(1, 2, 3, 10, 20, 30) | (1, 2, 3, 10, 20, 30) | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
また、タプルの要素はリストを持つことができるが、要素としてリストを変更することはできないが、リストの中の要素の変更はすることができる。<br> | また、タプルの要素はリストを持つことができるが、要素としてリストを変更することはできないが、リストの中の要素の変更はすることができる。<br> | ||
< | <syntaxhighlight lang="python"> | ||
t = ([2, 4, 6], [1, 3, 5]) | t = ([2, 4, 6], [1, 3, 5]) | ||
# t[0] = 100 シンタックスエラー | # t[0] = 100 シンタックスエラー | ||
86行目: | 86行目: | ||
tuple関数を使用すると、他のデータ型からタプルを作成することができる。<br> | tuple関数を使用すると、他のデータ型からタプルを作成することができる。<br> | ||
以下の例では、リストをタプルに変換している。<br> | 以下の例では、リストをタプルに変換している。<br> | ||
< | <syntaxhighlight lang="python"> | ||
lang = ["Python", "JavaScript", "Swift"] | lang = ["Python", "JavaScript", "Swift"] | ||
print(tuple(lang)) | print(tuple(lang)) | ||
92行目: | 92行目: | ||
# 出力 | # 出力 | ||
('Python', 'JavaScript', 'Swift') | ('Python', 'JavaScript', 'Swift') | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
101行目: | 101行目: | ||
変数のそれぞれの位置とタプルの値が対応しているのが分かる。(これをタプルのアンパックと呼ぶ)<br> | 変数のそれぞれの位置とタプルの値が対応しているのが分かる。(これをタプルのアンパックと呼ぶ)<br> | ||
いくつでも対応させることができるが、変数が多くなると可読性が落ちる。<br> | いくつでも対応させることができるが、変数が多くなると可読性が落ちる。<br> | ||
< | <syntaxhighlight lang="python"> | ||
lang = ("Python", "JavaScript", "Swift") | lang = ("Python", "JavaScript", "Swift") | ||
Py, JS, Sw = lang | Py, JS, Sw = lang | ||
112行目: | 112行目: | ||
'JavaScript' | 'JavaScript' | ||
'Swift' | 'Swift' | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:Python]] | [[カテゴリ:Python]] |
2021年11月22日 (月) 15:42時点における最新版
概要
タプルとは、リストと同様に様々なデータの要素を格納して管理することができる。
リストと異なるのは、タプルは要素を後で追加・削除・変更することができないというのが特徴である。これをイミュータブルと呼ぶ。
タプルの定義
タプルを作成するには丸括弧()を使用する。この中に、カンマで要素を区切る。
タプル名 = (要素1, 要素2, 要素3, ...)という形になる。また、空のタプルを作成するには、丸括弧()のみで宣言する。
t1 = (1, 3, 5, 3, 7, 5)
t2 = 2, 7, 8, 3, 9, 1
t3 = ()
print(t1)
print(t2)
print(t3)
# 出力
(1, 3, 5, 3, 7, 5)
(2, 7, 8, 3, 9, 1)
()
タプルも要素にインデックスが割り当てられている。
このインデックスを使用して、要素を抽出・スライスすることができる。
t = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
print(t[2])
print(t[3:8])
# 出力
30
(40, 50, 60, 70, 80)
要素が1つだけのタプルを作成する場合、後ろにカンマを付けることでタプルと認識する。
x = (200,)
y = 300,
print(x)
print(y)
# 出力
(200,)
(300,)
タプルのメソッドと操作
タプルのメソッド(index関数 count関数)
タプルには、index関数とcount関数がある。
以下の例では、index関数はタプルの要素にある整数値2が1番目のインデックスに存在し、count関数はタプルの要素に整数値4が3つあることを表す。
t = (1, 2, 4, 6, 8, 5, 2, 7, 4, 4)
print(t.index(2))
print(t.count(4))
# 出力
1
3
タプルの結合
タプルは要素の操作はできないが、タプル同士の結合を行うことができる。
以下の例では、2つのタプルのそれぞれの要素が、1つのタプルの要素として結合されている。
t1 = (1, 2, 3)
t2 = (10, 20, 30)
print(t1 + t2)
# 出力
(1, 2, 3, 10, 20, 30)
また、タプルの要素はリストを持つことができるが、要素としてリストを変更することはできないが、リストの中の要素の変更はすることができる。
t = ([2, 4, 6], [1, 3, 5])
# t[0] = 100 シンタックスエラー
t[1][0] = 100
print(t)
# 出力
([2, 4, 6], [100, 3, 5])
<br>
===== tuple関数でtuple型に変換する =====
tuple関数を使用すると、他のデータ型からタプルを作成することができる。<br>
以下の例では、リストをタプルに変換している。<br>
<syntaxhighlight lang="python">
lang = ["Python", "JavaScript", "Swift"]
print(tuple(lang))
# 出力
('Python', 'JavaScript', 'Swift')
タプルのアンパッキング
タプルを使用すれば、複数の変数に1文で値を渡すことができる。
以下の例では、3つの値を持ったタプルと3つの変数を用意して、次のようにタプルを代入している。
変数のそれぞれの位置とタプルの値が対応しているのが分かる。(これをタプルのアンパックと呼ぶ)
いくつでも対応させることができるが、変数が多くなると可読性が落ちる。
lang = ("Python", "JavaScript", "Swift")
Py, JS, Sw = lang
print(Py)
print(JS)
print(Sw)
# 出力
'Python'
'JavaScript'
'Swift'