知っておくべきPythonでタプルを使用する17の一般的な操作

タプルは、データのコレクションを格納するために使用されるPythonの4つの組み込みデータ型の1つです。タプル操作は、タプルデータ構造内の要素に対して実行できる操作です。 Pythonで最も広く使用されているタプル操作のいくつかを見てみましょう。

1.タプル内の要素の発生をカウントします

count()メソッドは、タプル内の要素の合計オカレンスをカウントするために使用されます。要素がタプルに見つからない場合、関数は0を返します。

 tup1 = ( 1, 4, 7, 3, 6, 4, 1, 8, 4 )
# counts number of times 4 occurs in the tuple
print( tup1.count(4) )
# prints
3

2.タプル内の要素の位置を見つける

index()メソッドを使用して、タプル内の要素のインデックス/位置を見つけることができます。タプル内に要素が複数出現する場合、関数は最初の出現のインデックスを返します。

 tup1 = ( 1, 4, 7, 3, 6, 4, 1, 8, 4)
print( tup1.index(4) )
# prints
1

注意:

タプルに存在しない要素のインデックスを見つけようとすると、関数は次のようにValueErrorをスローします。

ValueError:tuple.index(x):xがタプルにありません

3.2つ以上のタプルに参加する方法

+演算子を使用して、2つ以上のタプルを結合できます。

 tup1 = ( 1, 2, 3 )
tup2 = ( 4, 5, 6 )
tup3 = tup1 + tup2
print( tup3 )
# prints
(1, 2, 3, 4, 5, 6)

4.文字列をタプルに変換する方法

tuple()コンストラクターを使用して、文字列をパラメーターとしてtuple()コンストラクターに渡すことにより、文字列をタプルに変換できます。

 tup1 = tuple( "MAKEUSEOF" )
print( tup1 )
# prints
('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')

5.リストをタプルに変換する方法

リストをタプルに変換するには、3つのアプローチに従うことができます。

アプローチ1:tuple()コンストラクターの使用

tuple()コンストラクターは、リストをパラメーターとしてtuple()コンストラクターに渡すことにより、リストをタプルに変換するために使用されます。

 list1 = [1, 2, 3, 4, 5, 6]
tup1 = tuple(list1)
print(tup1)
# prints
(1, 2, 3, 4, 5, 6)

アプローチ2:tuple()コンストラクター内でループを使用する

これは、上記のアプローチのわずかなバリエーションです。タプルを作成するために、tuple()コンストラクター内で(リスト内包表記を使用して)ループを実行しています。

 list1 = [ 1, 2, 3, 4, 5, 6 ]
tup1 = tuple( element for element in list1 )
print( tup1 )
# prints
(1, 2, 3, 4, 5, 6)

アプローチ3:(* listName、)を使用する

これにより、単一のコンマ( )が存在するため、タプルリテラル内のリストが解凍されます。この方法は、3つのアプローチの中で最速です。

 list1 = [1, 2, 3, 4, 5, 6]
tup1 = (*list1,)
print(tup1)
# prints
(1, 2, 3, 4, 5, 6)

6.タプルを乗算する方法

*演算子を使用すると、タプルの内容を何度でも乗算できます。

 tup1 = ( 1, 2, 3 )
tup2 = tup1 * 3
print( tup2 )
# prints
(1, 2, 3, 1, 2, 3, 1, 2, 3)

7.タプル内の要素の総数を見つける方法

len()関数は、Pythonで最もよく使用される組み込み関数の1つです。オブジェクト内のアイテムの総数を見つけるために使用されます。タプルでlen()関数を使用して、タプル内の要素の総数をカウントできます。

 tup1 = ( 1, 2, 3 )
print( len( tup1 ) )
# prints
3

8.タプル内の最小要素を見つける方法

min()関数は、指定されたタプルの中で最も低い値を持つ要素を見つけるために使用されます。

 tup1 = ( 1, 2, 3 )
print("Minimum element in the tuple is: ")
print( min( tup1 ) )
# prints
Minimum element in the tuple is:
1

9.タプル内の最大要素を見つける方法

max()関数は、指定されたタプルの中で最も高い値を持つ要素を見つけるために使用されます。

 tup1 = ( 1, 2, 3 )
print("Maximum element in the tuple is: ")
print( max( tup1 ) )
# prints
Maximum element in the tuple is:
3

10.タプル内のすべての要素の合計を見つける方法

sum()関数は、タプル内のすべての要素の算術合計を計算するために使用されます。

 tup1 = ( 1, 2, 3 )
print("Sum of elements : ")
print( sum( tup1 ) )
# prints
Sum of elements :
6

11.タプルに対するany()操作

タプルの1つ以上の要素のブール値がTrueの場合、 any()関数はTrueを返し、それ以外の場合はFalseを返します。

 tup1 = ( False, False, False, True )
print( any( tup1 ) )
# prints
True

12.タプルでのall()操作

all()関数を使用して、タプルのすべての要素のブール値がTrueであるかどうかを確認できます。タプルのいずれかの要素のブール値がFalseの場合でも、関数はFalseを返します。

 tup1 = ( True, True, True, False, True )
print( all( tup1 ) )
# prints
False

13.タプルに対するsorted()操作

sort()関数を使用して、ソートされたリストを昇順で返すことができます。

 tup1 = ( 6, 1, 8, 3, 7, 2 )
print( sorted(tup1) )
print( type(sorted( tup1 )) )

# prints
[1, 2, 3, 6, 7, 8]
<class 'list'>
# Note that the return type is list

14.タプルをシャッフルする方法

タプルは不変であるため、直接シャッフルすることはできません。タプルをシャッフルするには、リストを使用する必要があります。型キャストを使用して、次の3つのステップでタプルをシャッフルできます。

ステップ1:タプルをリストにタイプキャストする

ステップ2:リストをシャッフルする

ステップ3:リストをタプルにタイプキャストする

import random
old_tuple = ( 45, 46, 47, 48, 49 )
# Printing tuple
print("Old tuple:")
print(old_tuple)
# Typecasting tuple to list
list1 = list(old_tuple)
# Shuffling list
random.shuffle(list1)
# Typecasting list back to tuple
new_tuple = tuple(list1)
# Printing new shuffled tuple
print("New shuffled tuple:")
print(new_tuple)
# prints
Old tuple:
(45, 46, 47, 48, 49)
New shuffled tuple:
(45, 49, 46, 47, 48)

注:タプルはランダムにシャッフルされるため、異なる出力が得られる場合があります。

15.タプルのリストをリストのリストに変換する方法

リスト内包表記を使用して、タプルのリストをリストのリストに変換できます。

 list1 = [ ('A', 'B'), ('C', 'D'), ('E', 'F') ]
print("List of tuples:")
print( list1 )
# List Comprehension
result = [ list(element) for element in list1 ]
print("List of lists:")
print(result)
# prints

List of tuples:
[('A', 'B'), ('C', 'D'), ('E', 'F')]
List of lists:
[['A', 'B'], ['C', 'D'], ['E', 'F']]

16.タプルのリストを文字列のリストに変換する方法

リスト内包表記とjoin()メソッドを使用して、タプルのリストを文字列のリストに変換できます。

 list1 = [ ('M', 'A', 'K', 'E'), ('U', 'S', 'E'), ('O', 'F') ]
print("List of tuples:")
print( list1 )
# List Comprehension with join() method
result = [ ''.join(element) for element in list1 ]
print("List of strings:")
print(result)
# prints

List of tuples:
[('M', 'A', 'K', 'E'), ('U', 'S', 'E'), ('O', 'F')]
List of strings:
['MAKE', 'USE', 'OF']

関連: PythonでForループを使用する方法

17.タプルを反転する方法

スライス手法を使用して、タプルを反転できます。このプロセス中に、タプルの新しいコピーが作成されます。

 old_tuple = ('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
print("Old tuple:")
print(old_tuple)
# Reversing tuple using slicing
new_tuple = old_tuple[::-1]
print("New tuple:")
print(new_tuple)
# prints
Old tuple:
('M', 'A', 'K', 'E', 'U', 'S', 'E', 'O', 'F')
New tuple:
('F', 'O', 'E', 'S', 'U', 'E', 'K', 'A', 'M')

Pythonicの方法を学ぶ

Pythonでタプル操作を使用すると、最小限のコード行でタスクを実行できます。創造性を発揮し、タプルの可能性をさらに探求して、よりPython的な方法でPythonを学びましょう。