この記事では、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()メソッド
この記事もチェック:Pythonでtitleメソッドを使って小文字と大文字を変換する方法
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'> |
この記事もチェック:Pythonのstrptimeを使って文字列を日付時刻に変換する方法
3. Python reduce() 関数を使ってタプルを文字列に変換する
Python の タプル
を Python の 文字列
に変換する方法では、 reduce()
関数を使用します。
Pythonのreduce()関数は第1引数に関数、第2引数に tuple
のような反復処理可能な要素を取ります。
そして、イテレート可能なオブジェクトの各要素にその関数を適用して、関数が実行した操作の最終結果を返します。
ここでは、 add
関数と、イテレート可能なオブジェクトとしてタプルを渡すことにします。
このようにすると、 reduce()
関数はタプルの各要素を追加します。
それでは、この reduce()
と add()
関数を使って、Python コードでタプルを文字列に変換する方法を理解しましょう。
NOTE: reduce()
と add
() 関数を使うには、2つのPythonモジュール funtools
と operator
をインポートする必要があります。
reduce()と
add()関数はそれぞれ
funtoolsと
operator` モジュールで定義されているからです。
また、これらのモジュールは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のfpdfモジュールを使って文字列やファイルをPDFに変換する方法
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'> |
結果は以下の通りです。
まとめ
この記事では、Pythonでタプルを文字列に変換する3つの異なる方法を学びました。
また、Pythonの join()
関数、 map()
関数、 reduce()
関数について学びました。
また、Pythonでタプルを文字列に変換するために str.join()
関数を使用する際に発生する TypeError
を解決する方法を学びました。