「Pythonの基礎 - タプルの作成と操作」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == <br><br> __FORCETOC__ カテゴリ:Python」)
 
編集の要約なし
1行目: 1行目:
== 概要 ==
== 概要 ==
タプルとは、リストと同様に様々なデータの要素を格納して管理することができる。<br>
リストと異なるのは、タプルは要素を後で追加・削除・変更することができないというのが特徴である。これをイミュータブルと呼ぶ。<br>
<br><br>


== タプルの定義 ==
タプルを作成するには丸括弧()を使用する。この中に、カンマで要素を区切る。<br>
タプル名 = (要素1, 要素2, 要素3, ...)という形になる。また、空のタプルを作成するには、丸括弧()のみで宣言する。<br>
<source lang="python">
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)
()
</source>
<br>
タプルも要素にインデックスが割り当てられている。<br>
このインデックスを使用して、要素を抽出・スライスすることができる。<br>
<source lang="python">
t = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
print(t[2])
print(t[3:8])
# 出力
30
(40, 50, 60, 70, 80)
</source>
<br>
要素が1つだけのタプルを作成する場合、後ろにカンマを付けることでタプルと認識する。<br>
<source lang="python">
y = (200,)
z = 300,
printx)
print(y)
# 出力
(200,)
(300,)
</source>
<br><br>
== タプルのメソッドと操作 ==
===== タプルのメソッド(index関数 count関数) =====
タプルには、index関数とcount関数がある。<br>
以下の例では、index関数はタプルの要素にある整数値2が1番目のインデックスに存在し、count関数はタプルの要素に整数値4が3つあることを表す。<br>
<source lang="python">
t = (1, 2, 4, 6, 8, 5, 2, 7, 4, 4)
print(t.index(2))
print(t.count(4))
# 出力
1
3
</source>
<br>
===== タプルの結合 =====
タプルは要素の操作はできないが、タプル同士の結合を行うことができる。<br>
以下の例では、2つのタプルのそれぞれの要素が、1つのタプルの要素として結合されている。<br>
<source lang="python">
t1 = (1, 2, 3)
t2 = (10, 20, 30)
print(t1 + t2)
# 出力
(1, 2, 3, 10, 20, 30)
</source>
<br>
また、タプルの要素はリストを持つことができるが、要素としてリストを変更することはできないが、リストの中の要素の変更はすることができる。<br>
<source lang="python">
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>
<source lang="python">
lang = ["Python", "JavaScript", "Swift"]
print(tuple(lang))
# 出力
('Python', 'JavaScript', 'Swift')
</source>
<br><br>
== タプルのアンパッキング ==
タプルを使用すれば、複数の変数に1文で値を渡すことができる。<br>
<br>
以下の例では、3つの値を持ったタプルと3つの変数を用意して、次のようにタプルを代入している。<br>
変数のそれぞれの位置とタプルの値が対応しているのが分かる。(これをタプルのアンパックと呼ぶ)<br>
いくつでも対応させることができるが、変数が多くなると可読性が落ちる。<br>
<source lang="python">
lang = ("Python", "JavaScript", "Swift")
Py, JS, Sw = lang
print(Py)
print(JS)
print(Sw)
# 出力
'Python'
'JavaScript'
'Swift'
</source>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Python]]
[[カテゴリ:Python]]

2020年4月15日 (水) 14:01時点における版

概要

タプルとは、リストと同様に様々なデータの要素を格納して管理することができる。
リストと異なるのは、タプルは要素を後で追加・削除・変更することができないというのが特徴である。これをイミュータブルと呼ぶ。


タプルの定義

タプルを作成するには丸括弧()を使用する。この中に、カンマで要素を区切る。
タプル名 = (要素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つだけのタプルを作成する場合、後ろにカンマを付けることでタプルと認識する。

 y = (200,)
 z = 300, 
 printx)
 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>
 <source 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'