Pythonでリストをスペース付きの文字列に変換するにはどうすればよいですか?


92

Pythonでリストをスペースで区切られた文字列に変換するにはどうすればよいですか?

たとえば、次のリストを変換したいと思います。

my_list = [how,are,you]

文字列に "how are you"

スペースは重要です。howareyouこれまでの使用の試みのように取得したくない

"".join(my_list)

18
ヒント:list変数名として使用しないでください。
Tim Pietzcker 2012

回答:


195
" ".join(my_list)

空の文字列ではなくスペースで結合する必要があります..。


7
このようなコードが私がPythonが好きな理由です。とても簡単。
Josh

この形式の文字列がある場合list = ['how ', 'are ', 'you '] 、これをリストに変換する方法はどうなりますか。
ムハンマドタキ

1
@MuhammadTaqiその後、ちょうど...参加BE4要素を取り除く" ".join([i.strip() for i in my_list)
JACK ZHANG

17

" ".join(my_list)文字列の場合と比較するとほとんど役に立たないものの、これを代わりに使用します。文字列以外(intの配列など)の場合、これはより良い場合があります。

" ".join(str(item) for item in my_list)

7

非文字列のlist場合も、このようにすることができます

" ".join(map(str, my_list))

2

したがって、目的の出力を実現するには、まず関数がどのように機能するかを知る必要があります。

join()Pythonのドキュメントで説明されているメソッドの構文は次のとおりです。

string_name.join(iterable)

注意事項:

  • stringの要素と連結されたものを返しますiterable。である要素間の区切り文字string_name
  • 内の任意の文字列以外の値がiterable上がりますTypeError

ここで、空白を追加するには、string_nameを、" "または' '両方に置き換えるだけで機能し、iterable連結するものを配置します。

したがって、関数は次のようになります。

' '.join(my_list)

しかし、?のwhite spaces要素の間に特定の数を追加したい場合はどうなりiterableますか?

これを追加する必要があります:

str(number*" ").join(iterable)

ここでは、numberはユーザー入力になります。

したがって、たとえばnumber=4

次に、の出力はにstr(4*" ").join(my_list)なりますhow are you。したがって、すべての単語の間に4つの空白があります。



-9

次のように、リスト自体のアイテムにスペースを追加してみませんか。
list = ["how ", "are ", "you "]


あなたはこの答えをコメントの形でより適切に見えるように書いています。この回答を拡張して、提案していることが機能する理由を説明すると、より有益になります。
アンドンM.コールマン

1
これは、(で生成されたとき、例えば、あなたがリストへのアクセスを持っていない場合には非機能的であるinput(a).split(b)
TheSola10

スペースが失われるため、内部文字列を変更しないでください
DeepakYadav18年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.