リスト内の文字列項目を単一の文字列に連結するもっと簡単な方法はありますか?
str.join()
関数を使用してリスト内の項目を結合できますか?
例えば。これが入力['this','is','a','sentence']
で、これが目的の出力this-is-a-sentence
です。
sentence = ['this','is','a','sentence']
sent_str = ""
for i in sentence:
sent_str += str(i) + "-"
sent_str = sent_str[:-1]
print sent_str
join
:を使用してください。
>>> sentence = ['this','is','a','sentence']
>>> '-'.join(sentence)
'this-is-a-sentence'
Pythonリストを文字列に変換するためのより一般的な方法は次のようになります。
>>> my_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> my_lst_str = ''.join(map(str, my_lst))
>>> print(my_lst_str)
'12345678910'
初心者が知っておくととても便利です なぜjoinが文字列メソッドなのか
最初は非常に奇妙ですが、その後は非常に便利です。
Joinの結果は常に文字列ですが、結合されるオブジェクトは多くの型(ジェネレータ、リスト、タプルなど)でもかまいません。
.join
は、メモリを一度だけ割り当てるので高速です。古典的な連結よりも優れています。 詳細説明
それを学んだら、それは非常に快適で、括弧を追加するためにこのようなトリックをすることができます。
>>> ",".join("12345").join(("(",")"))
'(1,2,3,4,5)'
>>> lista=["(",")"]
>>> ",".join("12345").join(lista)
'(1,2,3,4,5)'
@Burhan Khalidの答え は良いのですが、私はこれがもっと理解しやすいと思います:
from str import join
sentence = ['this','is','a','sentence']
join(sentence, "-")
Join()の2番目の引数はオプションで、デフォルトは ""です。
編集:この機能はPython 3で削除されました。
Pythonの組み込み機能であるreduceも使用できます。 -
functoolsのインポートから減らす
sentence = ['this'、 'is'、 'a'、 'センテンス']
out_str = str(reduce(ラムダx、y:x + " - " + y、センテンス))
印刷(out_str)
これが役に立つことを願っています:)