Pythonでタプルを文字列に変換する方法を解説する

スポンサーリンク

この記事では、Pythonでタプルを文字列に変換するためのさまざまな方法について説明します。

スポンサーリンク

Pythonのタプルとは?

Pythonでは、タプルは線形データ構造であり、類似の型または異なる型を持つデータの順序付きコレクションを格納するために使用されます。

タプルの要素は括弧 () で囲まれます。

タプルのすべての要素は 0 から N-1 までのインデックスを持ち、Nはタプルの長さまたはサイズです。

また、タプルは重複して値を格納することが可能であり、インデックスが付けられた異なる要素が同じ値を持つことができることを意味します。

タプルは本質的に不変であり、作成後にその値を変更することはできない。

Pythonで tuple を作成する方法を説明します。

type()メソッドを使用して、タプルが確かに作成されたことを確認します。

# Defining a Python tuple
tp = ('Ubuntu', 'Kali', 'Debian', 'Fedora', 'Ubuntu')
  
# Printing the results
print(tp)
  
# Validating the type of 'tp'
print(type(tp))

結果は以下の通りです。

('Ubuntu', 'Kali', 'Debian', 'Fedora', 'Ubuntu')
<class 'tuple'>

Pythonで文字列とは何ですか?

Pythonでは、文字列は最もよく使われるデータ型です。

シングルクォート、ダブルクォート、トリプルクォートで囲まれた値はすべて文字列とみなされます。

トリプルクォートを使用すると、文字列変数に複数行を入力することもできます。

Pythonの文字列は文字の配列と考えることもできますが、Pythonには文字のデータ型がないので、1つの文字も文字列となることを覚えておいてください。

Pythonのタプルと同じように、文字列のすべての要素(文字)は 0 から N-1 までのインデックスを持ち、Nは文字列の長さまたはサイズに相当し、文字列の任意の文字に直接アクセスすることができます

Pythonの文字列はmutableであり、作成した後にその値を変更することができます

Pythonの組み込み関数は print() で、これは文字列の値をコンソールに表示するために使われます。

# Defining Python string
str1 = 'Python'
str2 = "LinuxforDevices"
str3 = """Python and LinuxforDevices
are parts of JournalDev
IT Services Private Limited."""
 
# Printing the results
print(str1)
print(str2)
print(str3)
  
# Validating the type of str1, str2, & str3
print(type(str1))
print(type(str2))
print(type(str3))

結果は以下の通りです。

Python
LinuxforDevices
Python and LinuxforDevices 
are parts of JournalDev 
IT Services Private Limited.
<class 'str'>
<class 'str'>
<class 'str'>

タプルを文字列に変換する3つの方法

Pythonでタプルを文字列に変換する方法は主に3つあり、よく使われるので理解しておくとよいでしょう。

それぞれについて説明します。

推奨される読み方 Pythonのastype()メソッド

1. for ループを使用してタプルを文字列に変換する

Pythonの tuple を Python の string に変換する方法では、単純な for ループを使ってタプルの要素を繰り返し処理し、タプルの各要素を空の Python 文字列に追加し続けようとします。

次のPythonコードでこれを理解しましょう。

# Defining a Python tuple
tp = ('Linux', 'for', 'Devices')
 
# Creating an empty Python string
st = ''
 
# Using the Python for loop to convert the tuple to a string
for item in tp:
    st = st + item
 
# Printing the results
print("Given Python tuple: ", tp)
print("Generated Python string: ", st)
 
# Validating the type of 'st'
print(type(st))

結果は以下の通りです。

Given Python tuple:  ('Linux', 'for', 'Devices')
Generated Python string:  LinuxforDevices
<class 'str'>

2. Pythonのjoin()関数を使ってタプルを文字列に変換する

Pythonの tuple をPythonの string に変換する方法では、 str.join() 関数を使用します。

このPython関数はタプルのような反復可能なPythonオブジェクトを引数に取り、文字列のセパレータまたはデリミタを使用して結合したPythonの文字列を返します。

このセパレータやデリミタはどんな文字列でもかまいません。

しかし、通常は空文字列(””)、カンマ(,)、ハイフン(-)、半角スペース(” “)を使用します。

以下のPythonのコードで理解しましょう。

# Defining a Python tuple
tp = ('Python', 'is', 'a', 'part', 'of', 'JournalDev.')
 
# Creating a string separator/delimiter
# Here it's a single space
st = ' '
 
# Using the Python str.join() function to convert the tuple to a string
st = st.join(tp)
 
# Printing the results
print("Given Python tuple: ", tp)
print("Generated Python string: ", st)
 
# Validating the type of 'st'
print(type(st))

結果は以下の通りです。

Given Python tuple:  ('Python', 'is', 'a', 'part', 'of', 'JournalDev.')
Generated Python string:  Python is a part of JournalDev.
<class 'str'>

3. Python reduce() 関数を使ってタプルを文字列に変換する

Python の タプル を Python の 文字列 に変換する方法では、 reduce() 関数を使用します。

Pythonのreduce()関数は第1引数に関数、第2引数に tuple のような反復処理可能な要素を取ります。

そして、イテレート可能なオブジェクトの各要素にその関数を適用して、関数が実行した操作の最終結果を返します。

ここでは、 add 関数と、イテレート可能なオブジェクトとしてタプルを渡すことにします。

このようにすると、 reduce() 関数はタプルの各要素を追加します。

それでは、この reduce()add() 関数を使って、Python コードでタプルを文字列に変換する方法を理解しましょう。

NOTE: reduce()add() 関数を使うには、2つのPythonモジュール funtoolsoperator をインポートする必要があります。

reduce()add()関数はそれぞれfuntoolsoperator` モジュールで定義されているからです。

また、これらのモジュールはPythonの標準モジュールであり、Pythonインタプリタと一緒にシステムにインストールされるため、インストールする必要はありません。

# Importing Python functools module which contains the reduce() function
import functools
 
# Importing Python operator module which contains the add() function
import operator
 
# Defining a Python tuple
tp = ('Linux', 'for', 'Devices')
 
# Using the Python  reduce() function to convert the tuple to a string
st = functools.reduce(operator.add, tp)
  
# Printing the results
print("Given Python tuple: ", tp)
print("Generated Python string: ", st)
 
# Validating the type of 'st'
print(type(st))

結果は以下の通りです。

Given Python tuple:  ('Linux', 'for', 'Devices')
Generated Python string:  LinuxforDevices
<class 'str'>

Python の join() を使ってタプルを文字列に変換する際のエラーについて

Python で join() 関数を使ってタプル (非文字列要素を少なくとも1つ含む) を文字列に変換しようとすると、エラーが発生することがあります。

これは TypeError で、 join() 関数が文字列と非文字列の値を結合または連結できないために発生するものです。

そこで、この TypeError を克服するために、 map() 関数を使用します。

Pythonでは、map()関数は2つの引数を取ります。

1つ目は関数、2つ目は tuple のような反復可能なPythonオブジェクトで、反復可能なオブジェクトの各要素にその関数を適用します。

そして最後に、実際にはイテレータであるマップオブジェクトを返します。

このイテレータは、引数として渡されたイテレート可能なオブジェクトの各要素に適用された関数の結果であるイテレート可能なオブジェクトの要素になります。

この概念をPythonのコードで理解しましょう。

# Defining a Python tuple with two non-string elements (float)
tp = ('Ubuntu', 'is', 'available', 'in', 'different', 'versions:', 20.04, 18.04, 'etc.')
 
# Creating a string separator/delimiter
# Here it's a single space
st = ' '
 
# Using the Python join() function to convert the tuple to a string
st = st.join(tp)
 
# Printing the results
print("Given Python tuple: ", tp)
print("Generated Python string: ", st)
 
# Validating the type of 'st'
print(type(st))

結果は以下の通りです。

# Defining a Python tuple with two non-string elements (float)
tp = ('Ubuntu', 'is', 'available', 'in', 'different', 'versions:', 20.04, 18.04, 'etc.')
 
# Creating a string separator/delimiter
# Here it's a single space
st = ' '
 
# Using the Python map() function with str.join() function to convert the tuple to a string
# Here the first argument is str() function & the second argument is a tuple
st = st.join(map(str, tp))
 
# Printing the results
print("Given Python tuple: ", tp)
print("Generated Python string: ", st)
 
# Validating the type of 'st'
print(type(st))

では、上記のPythonプログラムをmap()関数とjoin()関数を使って実行し、このTypeErrorが取り除かれるかどうかを見てみましょう。

Given Python tuple:  ('Ubuntu', 'is', 'available', 'in', 'different', 'versions:', 20.04, 18.04, 'etc.')
Generated Python string:  Ubuntu is available in different versions: 20.04 18.04 etc.
<class 'str'>

結果は以下の通りです。

TypeError With Join convert tuple to a string
TypeError With str.join() function

まとめ

この記事では、Pythonでタプルを文字列に変換する3つの異なる方法を学びました。

また、Pythonの join() 関数、 map() 関数、 reduce() 関数について学びました。

また、Pythonでタプルを文字列に変換するために str.join() 関数を使用する際に発生する TypeError を解決する方法を学びました。

タイトルとURLをコピーしました