与えられたリストを文字列に変換する Python プログラムを作成します。リストが与えられ、それを Python で文字列に変換するときに遭遇する可能性のあるさまざまな状況があります。
たとえば、文字列のリストまたは整数のリストから文字列への変換です。
例
Input: ['Geeks', 'for', 'Geeks'] Output : Geeks for Geeks Explanation: The Input is of list data type but the output is of string datatype>
リストを文字列に変換するプログラム
- for ループの使用
- .join() メソッドの使用
- で 歌うリストの理解
- map() の使用 関数
- 列挙関数の使用
- in 演算子の使用
- functools.reduce メソッドの使用
- str.formatメソッドの使用
- 再帰の使用
for ループを使用して Python リストを文字列に変換する
次を使用してリストを反復処理します。 for ループ そして、空の文字列内のすべてのインデックスの要素を追加し続けます。これにより、最終的な文字列が文字列データ型になります。
Python3
# Python program to convert a list to string> def> listToString(s):> ># initialize an empty string> >str1>=> ''> ># traverse in the string> >for> ele>in> s:> >str1>+>=> ele> ># return string> >return> str1> # Driver code> s>=> [>'Geeks'>,>'for'>,>'Geeks'>]> print>(listToString(s))> |
>
>出力
techcodeview.com>
時間計算量: の上)
補助スペース: の上)
Python リストを文字列に変換する join() メソッドを使用する
リスト s を入力として受け取る関数 listToString(s)。関数内では、空の文字列 str1 が初期化されます。の join() 関数 次に、スペース文字を区切り文字として使用して、入力リスト s の要素を単一の文字列に結合した結果を返します。ドライバー コードはリスト s を初期化し、関数 listToString(s) を呼び出し、リスト要素をスペースで結合した結果を出力します。
注: しかし、リストの要素として文字列と整数の両方が含まれている場合はどうなるでしょうか?そのような場合、上記のコードは機能しません。文字列に追加するときに文字列に変換する必要があります。
Python3
# Function to convert> def> listToString(s):> ># initialize an empty string> >str1>=> ' '> ># return string> >return> (str1.join(s))> > > # Driver code> s>=> [>'Geeks'>,>'for'>,>'Geeks'>]> print>(listToString(s))> |
>
>出力
Geeks for Geeks>
時間計算量: の上)
補助スペース: の上)
リスト内包表記を使用してリストを文字列に変換する
ここで使用します リストの内包表記 以下のコードが実装を示しているように、リストを文字列に変換します。
Python3
# Python program to convert a list to string using list comprehension> s>=> [>'I'>,>'want'>,>4>,>'apples'>,>'and'>,>18>,>'bananas'>]> # using list comprehension> listToStr>=> ' '>.join([>str>(elem)>for> elem>in> s])> print>(listToStr)> |
>
>出力
I want 4 apples and 18 bananas>
時間計算量 : プログラムはリストの各要素を 1 回繰り返すため、プログラムの時間計算量は O(n) です。n はリスト s の長さです。
空間の複雑さ: プログラムの補助空間の複雑さは O(n) です リスト内包表記を使用して文字列の新しいリストを作成するためです。
map() 関数を使用してリストを文字列に変換する
使用 map() メソッド str を指定された反復子 (リスト) にマッピングするため (リスト内の要素を文字列に変換するため)。以下に示すように、コードはmap()関数を使用した実装です。
Python3
# Python program to convert a list to string using list comprehension> > s>=> [>'I'>,>'want'>,>4>,>'apples'>,>'and'>,>18>,>'bananas'>]> # using list comprehension> listToStr>=> ' '>.join(>map>(>str>, s))> print>(listToStr)> |
>
>出力
I want 4 apples and 18 bananas>
時間計算量 : の t このコードの複雑さは O(n) です。ここで、n はリスト s の長さです。
空間の複雑さ: このコードの空間計算量は O(n) です。ここで、n はリスト s の長さです。
リストから文字列へ を使用して 列挙関数
このコードは、リストの要素をスペースで区切って単一の文字列に変換します。 s の要素を反復処理し、各要素を文字列に変換し、スペース区切り文字を使用して要素を結合します。結果の文字列が出力されます。
Python3
s>=> [>'I'>,>'want'>,>4>,>'apples'>,>'and'>,>18>,>'bananas'>]> listToStr>=> ' '>.join([>str>(elem)>for> i,elem>in> enumerate>(s)])> print>(listToStr)> |
>
>出力
I want 4 apples and 18 bananas>
時間計算量: の上)
補助スペース: の上)
を使用して文字列をリストします 演算子内
コードはリスト s 内の各要素 i を反復処理して出力します。 end= は、各要素の後に改行文字の代わりにスペースを出力することを指定します。その結果、要素はスペースで区切られて同じ行に出力されます。
Python3
s>=> [>'Geeks'>,>'for'>,>'Geeks'>]> for> i>in> s:> >print>(i,end>=>' '>)> |
>
>出力
Geeks for Geeks>
時間計算量: の上)
補助スペース: の上)
リストを変換する functools.reduce メソッドの使用
このコードでは、 関数ツールモジュール リストの要素を単一の文字列に結合します。ラムダ関数 lambda a, b: a + + str(b) を適用して、各要素 b を前の結果 a と順番に連結します。結果の文字列が出力されます。
パイソン
from> functools>import> reduce> s>=> [>'I'>,>'want'>,>4>,>'apples'>,>'and'>,>18>,>'bananas'>]> listToStr>=> reduce>(>lambda> a, b : a>+> ' '> +>str>(b), s)> print>(listToStr)> |
>
>出力
I want 4 apples and 18 bananas>
時間計算量: 提供された Python コードの時間計算量は O(n) です。ここで、n は入力リスト内の要素の数です。
空間の複雑さ: コードの空間計算量は O(n) です。ここで、n は入力リスト s の要素の数です。
str.formatメソッドを使用したリストから文字列への変換
Python でリストを文字列に変換するもう 1 つのアプローチは、 str.format メソッド 。このメソッドを使用すると、文字列テンプレートを指定し、リスト内の要素をプレースホルダー値に入力できます。
例えば:
Python3
lst>=> [>'Geeks'>,>'for'>,>'Geeks'>]> # Convert the list to a string using str.format> result>=> '{} {} {}'>.>format>(>*>lst)> print>(result)># Output: Geeks for Geeks> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>出力
Geeks for Geeks>
このアプローチには、文字列テンプレート内の書式設定プレースホルダーを使用して、リスト内の要素をどのように書式設定するかを正確に指定できるという利点があります。たとえば、浮動小数点数の小数点以下の桁数や、出力文字列の幅と配置を指定できます。
マックOSとは何ですか
Python3
lst>=> [>1.2345>,>'good'> ,>3.4567>]> # Convert the list to a string using str.format> result>=> '{:.2f} {} {:.2f}'>.>format>(>*>lst)> print>(result)># Output: 1.23 2.35 3.46> #This code is contributed by Edula Vinay Kumar Reddy> |
>
>出力
1.23 good 3.46>
時間計算量: 上記のアプローチの時間計算量は、リストの長さに依存します。たとえば、方法 1 では、リストを反復処理して各要素を文字列に追加するため、時間計算量は O(n) になります (n はリストの長さ)。
同様に、他のメソッドの時間計算量も O(n) になります。
空間の複雑さ: リストの要素を格納するためにサイズ n の新しい文字列を作成しているため、上記のすべてのメソッドの空間計算量も O(n) になります。
Python リストを文字列に変換する 再帰を使用する
コード 再帰的に 要素を連結することにより、リスト l を文字列 word に変換します。開始インデックスから開始し、現在の要素を単語に追加し、リストの末尾に到達するまでプロセスを続行します。結果の文字列が出力されます。
Python3
def> list_string(start, l, word):> >if> start>=>=> len>(l):> >return> word># base condition to return string> >word>+>=> str>(l[start])>+>' '> # concatenating element in list to word variable> >return> list_string(start>+>1>, l, word)># calling recursive function> # Driver code> l>=> [>'Geeks'>,>'for'>,>'Geeks'>]># defining list> print>(list_string(>0>, l, ''))> |
>
>出力
Geeks for Geeks>