python tuple tutorial with hands examples
このチュートリアルでは、Pythonでのタプルとタプルとリストの概念を例を挙げて説明します。
Pythonには、以下に示す4つのコレクションデータ型があります。
- リスト
- セットする
- 辞書
- タプル
このチュートリアルでは、Pythonのタプルとそのさまざまな操作について詳しく見ていきます。私たちを読むことをお見逃しなく Pythonチュートリアルの全範囲 。
Pythonでは、タプルはデータ構造であり、複数のデータを一度に格納するために使用される配列に似ています。 Java、C、C ++などの他のプログラミング言語の経験がある場合は、配列の概念に精通しているため、タプルは配列とほとんど同じです。
学習内容:
- タプルとは何ですか?
- タプルvsリスト
- タプルの作成
- タプルの値へのアクセス
- ネガティブインデックス
- タプルをスライスする
- タプルの変更
- リストをタプルに変換する
- タプルを文字列に変換する
- Pythonでタプルを並べ替える
- タプルのパッキングとアンパック
- NamedTuple
- タプルを返す
- タプルインデックスが範囲外
- タプルの削除
- 基本的なタプル操作
- 組み込みのタプルメソッド
- 結論
- 推奨読書
タプルとは何ですか?
タプルは、一度に複数のデータを格納するために使用されるデータ構造です。タプルに格納されているデータは異種であり、これにより、Pythonのタプルの最も強力な機能になります。文字列、整数、オブジェクトなど、さまざまなデータ型の複数のデータを1つのタプルに格納することもできます。
タプルはPythonでは不変であるため、一度割り当てられたデータを変更することはできません。
タプルに格納されているデータには、インデックスを使用してアクセスします。タプルのインデックスは常にゼロから始まるためです。各要素にはタプル内の特定の場所があり、それらのデータはすべてインデックスを使用してアクセスされます。
タプルvsリスト
- Pythonのリストは変更可能(値は変更可能)ですが、タプルは不変です(値は変更できません)
- リストデータ構造と比較すると、タプルはPythonで提供する機能が少なくなっています。
- タプルは不変であるため、リストと比較した場合、タプルでの反復が高速になるため、パフォーマンスが向上します。
タプルの作成
タプル内のデータはコンマ区切りで格納され、角かっこ()で囲まれます。タプルには、さまざまなタイプのアイテムをいくつでも含めることができます。
構文:
Tuple = (item1, item2, item3)
例:1
Tuple = ()
例:2
Tuple = (2, 4, 5.6)
例:3
Tuple = (2, 5, 4.5, “Hi”)
例:4
Tuple = (“Hi”, “Hello”, “Python”)
上記の例を見ると、2と5が整数型、4.5型がfloat型、「Hi」型が文字列型であるコンマ区切りのさまざまなデータ型のアイテムが格納されています。空のタプルを宣言することもできます。
Javaでjunitテストケースを書く
タプル内でリストまたはタプルを宣言することもできます。これはネストされたタプルと呼ばれます。
例:5
Tuple = (“Python”, (2, 4, 6), (4, 5.6, “Hi”)) print(“Contents of tuple is:”, Tuple)
出力:
タプルの内容は次のとおりです:(「Python」、(2、4、6)、(4、5.6、「こんにちは」))
上記の例を見ると、別のタプル内にリストとタプルが宣言されています。
タプルに含まれる要素が1つだけの場合、タプルとは見なされません。タプルであることをインタプリタに指定するには、末尾のコンマにする必要があります。
以下の例で見てみましょう
例:6
my_tuple = (“Python”) Print(“Type of my_tuple is:”, type(my_tuple)) my_tuple = (10) Print(“Type of my_tuple is:”, type(my_tuple)) my_tuple = (“Python”, ) Print(“Type of my_tuple is:”, type(my_tuple))
出力:
my_tupleのタイプは次のとおりです。
my_tupleのタイプは次のとおりです。
my_tupleのタイプは次のとおりです。
タプルの値へのアクセス
Pythonでタプル内に存在するアイテムにアクセスする方法はいくつかあります。インデックスの助けを借りて、タプルの要素にアクセスできます。インデックスは0から始まり、インデックスは常に整数である必要があります。 floatのような整数以外のインデックスを使用すると、TypeErrorが発生します。
例:1
Tuple = (3, 5, 6.7, “Python”) print(“Tuple is:”, Tuple)
出力:
タプルは次のとおりです:(3。5。6.7、「Python」)
上記の例では、print関数を使用してタプルを直接印刷しており、タプルの個々の要素にはアクセスしていません。
タプルの個々の要素にアクセスしてみましょう。
例:2
Tuple = (3, 5, 6.7, “Python”) print(“Third element of the Tuple is:”, Tuple(2))
出力:
タプルの3番目の要素は次のとおりです。6.7
例:3
Tuple = (3, 5, 6.7, “Python”) print(“First element of the Tuple is:”, Tuple(0)) print(“Last element of the Tuple is:”, Tuple(3))
出力:
タプルの最初の要素は次のとおりです:3
タプルの最後の要素は「Python」です
ネストされたインデックスを使用して、ネストされたタプルに存在するアイテムにアクセスすることもできます。
例:4
Tuple = (“Python”, (2, 4, 6), (4, 5.6, “Hi”)) print(“First element of the tuple is:”, Tuple(0)(1)) print(“Items present inside another list or tuple is:”, Tuple(2)(1))
出力:
タプルの最初の要素は次のとおりです:「y」
別のリストまたはタプル内に存在するアイテムは次のとおりです。5.6
で説明されているように Pythonリストチュートリアル ネストされたリスト内の値は行列の形式で格納されます。同様に、タプルも同じ概念に従います。
P y t h o n
2 4 6
45.6こんにちは
したがって、Tuple (0) (1)にアクセスしようとすると、1を指します。st行と2nd列なので、データは「y」になります。
同様に、List (2) (1)にアクセスしようとすると、3を指します。rd行と2nd列なので、データは5.6になります
注意:上記の概念は、ネストされたインデックスを使用してタプルのアイテムにアクセスしようとした場合にのみ機能します。
ネガティブインデックス
負のインデックスを使用してデータにアクセスすることもできます。負のインデックスは常に-1から始まり、-1は最後の要素を参照し、-2は最後の2番目の項目を参照します。
ポジティブインデックスはタプルのアイテムを順方向に反復するために使用されますが、ネガティブインデックスは逆方向に従うことを常に覚えておいてください。
例:1
Tuple = (3, 5, 7.8) print(“Last element of the tuple is:”, Tuple(-1))
出力:
タプルの最後の要素は次のとおりです:7.8
例:2
Tuple = (3, 5, 7.8) print(“First element of the tuple is:”, Tuple(-3))
出力:
タプルの最初の要素は次のとおりです:3
SQLクエリインタビューの質問と回答pdf
タプルをスライスする
スライス演算子(:)を使用すると、タプルからさまざまな要素にアクセスできます。
例:1
Tuple = (1, 2.5, 3, 4.9, 5, 6, “Python”) print(“Elements from 2nd to 5th is: ”, Tuple(1:5)) print(“Elements beginning to 4th is: ”, Tuple(:-3)) print(“Elements 4th to end is: ”, Tuple(3:)) print(“Elements from start to end is: “, Tuple(:))
出力:
2番目から5番目までの要素は次のとおりです:(2.5、3、4.9、5)
4番目から始まる要素は次のとおりです:(1、2.5、3、4.9)
4番目から最後までの要素は次のとおりです:(4.9、5、6、「Python」)
最初から最後までの要素は次のとおりです:(1、2.5、3、4.9、5、6、「Python」)
forループを使用してタプルに存在する要素にアクセスすることもできます。
例:2
Tuple = (3, 5, 7.8) print(“First element of the tuple is:”, Tuple(-3))
出力:
1
二
3.5
5
'こんにちは'
タプルの変更
ご存知のように、タプルはPythonで不変であるため、データを変更することはできませんが、リストは変更可能です。したがって、タプル(ネストされたタプル)内に存在するリストを変更できます。
例:1
Tuple = (3, 4.5, (4, 5, 6)) print(“Original Tuple is:”, Tuple) Tuple(2)(0) = 2 print(“Updated Tuple is:”, Tuple)
出力:
元のタプルは:(3、4.5、(4、5、6))
更新されたタプルは次のとおりです:(3、4.5、(2、5、6))
タプルは不変であるため、タプルでappend()またはextend()関数を使用することはできません。また、remove()またはpop()関数も使用できません。
リストをタプルに変換する
tuple()と呼ばれるPythonの組み込み関数を使用して、リストをタプルに変換できます。
構文:
tuple(arg1)
タプル()関数は1つの引数を受け入れ、引数はリスト変数名である必要があります。
例:1
List = (2, 4, 5.6, “Hi”) print(“Original List is:”, List) Tuple = tuple(List) print(“After converting to tuple is:”, Tuple)
出力:
元のリストは次のとおりです:(2、4、5.6、「こんにちは」)
タプルに変換した後は次のとおりです:(2、4、5.6、「こんにちは」)
タプルを文字列に変換する
2つの方法を使用してタプルを文字列に変換することもできます。
アプローチ:1
Stringのjoin()組み込みメソッドを使用して、タプルを文字列に変換できます。
例:1
def convertTupleToString(my_tuple): s = ‘’.join(my_tuple) return s Tuple = (‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’) print(“Before converting to String:”, Tuple) str = convertTupleToString(Tuple) print(“After converting to String:”, str)
出力:
文字列に変換する前:(「P」、「y」、「t」、「h」、「o」、「n」)
文字列に変換した後:「Python」
アプローチ:2
functoolsのreduce()メソッドは、タプルを文字列に変換するために使用されます。このメソッドは、タプルに存在する文字を連結し、文字列を生成します。
例:2
import operator import functools def convertTupleToString(my_tuple): s = functools.reduce(operator.add, (my_tuple)) return s Tuple = (‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’) print(“Before converting to String:”, Tuple) str = convertTupleToString(Tuple) print(“After converting to String:”, str)
出力:
文字列に変換する前:(「P」、「y」、「t」、「h」、「o」、「n」)
文字列に変換した後:「Python」
注意: タプルに文字が含まれている場合にのみ、タプルを文字列に変換できます。タプルに整数型または浮動小数点型の項目が1つ含まれている場合、エラーがスローされます。
例:3
def convertTupleToString(my_tuple): s = ‘’.join(my_tuple) return s Tuple = (‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’, 4, 6.5) print(“Before converting to String:”, Tuple) str = convertTupleToString(Tuple) print(“After converting to String:”, str)
出力:
文字列に変換する前:(「P」、「y」、「t」、「h」、「o」、「n」、4、6.5)
トレースバック(最後の最後の呼び出し):
ファイル「」、1行目、
str =” .join(Tuple)
TypeError:シーケンス項目6:予期されるstrインスタンス、intが見つかりました
Pythonでタプルを並べ替える
Pythonには、タプルの要素を並べ替えるためのsorted()という組み込み関数があります。
構文:
sorted(arg1)
sort()メソッドは、変数名である1つの引数を受け入れます。
例:1
def sortTuple(my_tuple): sort = sorted(my_tuple) return sort Tuple = (2, 4, 6, 1, 4, 7.8, 2.7) print(“Before sorting the Tuple is:”, Tuple) sortedTuple = sortTuple(Tuple) print(“After sorting the Tuple is:”, sortedTuple)
出力:
タプルをソートする前は:(2、4、6、1、4、7.8、2.7)
タプルをソートした後:(1、2、2.7、4、4、6、7.8)
タプルのパッキングとアンパック
Pythonは、パッキングとアンパックと呼ばれる重要な機能を提供します。パッキングでは、値をタプルに入れますが、アンパックでは、タプルに格納されているすべての値を変数に抽出します。
例:1
Tuple = (“John”, 23567, “Software Engineer”) (eName, eID, eTitle) = Tuple print(“Packed tuples is:”, Tuple) print(“Employee name is:”, eName) print(“Employee ID is:”, eID) print(“Employee Title is:”, eTitle)
出力:
パックされたタプルは次のとおりです:(「ジョン」、23567、「ソフトウェアエンジニア」)
従業員名:ジョン
従業員IDは:23567
従業員の役職は次のとおりです。ソフトウェアエンジニア
上記の2行目に気付いた場合は、タプルをいくつかの変数に解凍しています。
注意: タプル内のアイテムの数は、アンパックされたタプル内の変数の数と同じである必要があります。
NamedTuple
Pythonは、コレクションモジュールから取得されるnamedtuple()と呼ばれる特別なタイプの関数を提供します。
名前付きタプルは、キーと値を含む辞書に似ています。ただし、ディクショナリではキーを使用してのみ値にアクセスできますが、NamedTupleは値とキーの両方からのアクセスをサポートしている点が異なります。
nemaedtuple()の値にアクセスする方法は3つあります。
- インデックスによるアクセス
- キーによるアクセス
- getattr()メソッドによるアクセス
例:1
import collections Employee = collections.namedtuple(‘Employee’, (‘name’, ‘ID’, ‘Title’)) Emp = Employee(‘John’, ‘23567’, ‘Software Engineer’) #Accessing using index print(“Employee name is:”, Emp(0)) # Accessing using key print(“Employee ID is:”, Emp.ID) #Access by getattr() method print(“Employee Title is:”, getattr(Emp, ‘Title’))
出力:
従業員名:ジョン
従業員IDは:23567
従業員の役職は次のとおりです。ソフトウェアエンジニア
また、namedtuples()関数でサポートされている3つの変換操作があります。
- _make()
- _asdict()
- **(ダブルスタート)演算子
例:2
import collections Employee = collections.namedtuple(‘Employee’, (‘name’, ‘ID’, ‘Title’)) Emp = Employee(‘John’, ‘23567’, ‘Software Engineer’) Emp1 = (‘Mathew’, ‘45783’, “Software Developer”) Emp2 = {‘name’ : “Helen”, ‘ID’ : 56873, ‘Title’ : “Test Lead”} #Using _make() print(Employee._make(Emp1)) #Using _asdict() print(Emp._asdict()) #Using ** operator print(Employee(**Emp2))
出力:
Employee(name = ’Mathew’、ID = ’45783’、Title = ’Software Developer’)
OrderedDict((( ‘name’、 ‘John’)、( ‘ID’、 ‘23567’)、( ‘Title’、 ‘Software Engineer’)))
Employee(name = ’Helen’、ID = 56873、Title = ’Test Lead’)
タプルを返す
returnステートメントを使用して、値またはタプルのコレクションを返すことができます。
例:1
def my_fun(): name = “John” ID = 23567 Title = “Software Engineer” return (name, ID, Title) employee = my_fun() print(“Employee detail is:”, employee)
出力:
従業員の詳細は次のとおりです:(「ジョン」、23567、「ソフトウェアエンジニア」)
タプルインデックスが範囲外
範囲外のインデックスは、タプルまたはリストの操作中に発生する一般的な例外の1つです。この例外は通常、タプルの範囲外のアイテムにアクセスしようとしたときに発生します。つまり、タプルに含まれる要素が3つだけの場合、および4つの要素にアクセスしようとした場合です。th要素の場合、タプルインデックスが範囲外の例外を取得します。
例:1
Tuple = (4, 7, 1.2, “Hi”) print(Tuple(4))
出力:
トレースバック(最後の最後の呼び出し):
ファイル「」、1行目、
タプル(4)
IndexError:タプルインデックスが範囲外です
上記の例で観察した場合、5に存在する要素にアクセスしようとしています。th位置ですが、そこに要素が存在しないため、タプルインデックスが範囲外の例外としてスローされます。
タプルの削除
タプルは不変であるため、タプルから個々の要素を削除することはできません。タプルから要素を削除する唯一の方法は、タプル全体を削除することです。
Pythonには、タプル全体を削除するための組み込み関数「del」が用意されています。
例:1
Tuple = (2, 4.5, “Python”) print(“Before deleting the tuple:”, Tuple) del Tuple print(“After Deleting the tuple:”, Tuple)
出力:
タプルを削除する前に:(2、4.5、「Python」)
トレースバック(最後の最後の呼び出し):
ファイル「」、1行目、
print(「タプルを削除した後:」、タプル)
NameError:名前「タプル」が定義されていません
上記の例では、タプルを削除した後、タプルを印刷しようとしていますが、もう存在しません。したがって、NameErrorをスローします。
基本的なタプル操作
タプルを使用すると、連結、繰り返しなどの基本的な操作を実行できます。
いくつかの例を使用して、すべての基本的な操作を見てみましょう。
例:1 –タプル連結
「+」演算子を使用してタプルを連結できます。
Tuple1 = (3, 5, “Hi”) Tuple2 = (5.6, 1, “Python”) print(“Tuple 1 is:”, Tuple1) print(“Tuple 2 is”, Tuple2) print(“Concatenation of Tuple 1 and Tuple 2 is:”, Tuple1+Tuple2)
出力:
タプル1は次のとおりです:(3、5、「こんにちは」)
タプル2は次のとおりです:(5.6、1、「Python」)
タプル1とタプル2の連結は次のとおりです:(3、5、「こんにちは」、5.6、1、「Python」)
例:2 –タプルの繰り返し
タプルの繰り返しとは、タプルの要素を複数回繰り返すことを意味します。これは、「*」演算子を使用して実現できます。
Tuple = (3, 1, 5.6, “Python”) print(“Before the repetition the tuple is:”, Tuple) print(“After the repetition the tuple is:”, Tuple*3)
出力:
新入生のためのJavaインタビューの質問と回答
繰り返す前のタプルは次のとおりです:(3、1、5.6、「Python」)
繰り返し後のタプルは次のとおりです:(3、1、5.6、「Python」、3、1、5.6、「Python」、3、1、5.6、「Python」)
例:3 –メンバーシップオペレーター
「in」演算子を使用して、特定の要素がタプルに存在するかどうかを確認できます。要素がタプルに存在する場合はブール値Trueを返し、要素が存在しない場合はFalseを返します。
Tuple = (3, 2, 6) print(“Is element 2 present in Tuple:”, 2 in Tuple)
出力:
タプルに要素2が存在しますか:True
組み込みのタプルメソッド
Pythonには、次の表で説明するように、タプル用の組み込みメソッドがいくつか用意されています。
メソッド | 説明 |
---|---|
どれか() | タプルに要素が存在する場合はTrueを返し、タプルが空の場合はFalseを返します |
分() | タプルの最小要素(整数)を返します |
max() | タプルの最大要素(整数)を返します |
len() | タプルの長さを返します |
ソート済み() | タプルのすべての要素を並べ替えるために使用されます |
和() | タプルのすべての要素(整数)の合計を返します |
例を挙げて、すべてのメソッドの使用方法を見てみましょう。
例:1 – any()メソッド
Tuple = (3, 1, 4.5) print(“Is there any elements present in Tuple:”, any(Tuple)) Tuple1 = () print(“Is there any elements present in Tuple1:”, any(Tuple1))
出力:
タプルに存在する要素はありますか:True
Tuple1に存在する要素はありますか:False
例:2 – min()メソッド
Tuple = (3, 5.6, 5, 8) print(“Smallest element in the tuples is:”, min(Tuple))
出力:
タプルの最小要素は次のとおりです:3
例:3 – max()メソッド
Tuple = (3, 5.6, 5, 8) print(“Largest element in the tuples is:”, max(Tuple))
出力:
タプルの最大の要素は次のとおりです:8
例:4 – len()メソッド
Tuple = (3, 5.6, 5, 8) print(“Length of the tuple is:”, len(Tuple))
出力:
タプルの長さは次のとおりです:4
例:5 –sorted()メソッド
Tuple = (2, 3.5, 1, 6, 4) print(“Sorted integer is:”, sorted(Tuple)) Tuple1 = (‘e’, ‘a’, ‘u’, ‘o’, ‘i’) print(“Sorted character is:”, sorted(Tuple1))
出力:
ソートされた整数は次のとおりです:(1、2、3.5、4、6)
並べ替えられた文字は次のとおりです:(「a」、「e」、「i」、「o」、「u」)
例:6 – sum()メソッド
Num = (3, 5.1, 2, 9, 3.5) print('Sum of all the numbers in the tuples is:', sum(Num))
出力:
タプル内のすべての数値の合計は次のとおりです:22.6
結論
タプルはPythonのデータ型の1つであり、データ構造とも呼ばれます。
Pythonタプルは、任意のデータ型の多数の値を1つの変数に格納するために使用されます。タプルは不変であるため、タプルから値にアクセスするパフォーマンスが向上します。
タプルを使用する場合は、タプルに組み込まれているすべてのメソッドを覚えておく必要があります。
Pythonでのタプルの概念に関する膨大な知識が得られたことを願っています!!