web-dev-qa-db-ja.com

リスト内の項目を文字列に連結する

リスト内の文字列項目を単一の文字列に連結するもっと簡単な方法はありますか?

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
390
alvas

join :を使用してください。

>>> sentence = ['this','is','a','sentence']
>>> '-'.join(sentence)
'this-is-a-sentence'
758
Burhan Khalid

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'
94
6pack kid

初心者が知っておくととても便利です なぜjoinが文字列メソッドなのか

最初は非常に奇妙ですが、その後は非常に便利です。

Joinの結果は常に文字列ですが、結合されるオブジェクトは多くの型(ジェネレータ、リスト、タプルなど)でもかまいません。

.joinは、メモリを一度だけ割り当てるので高速です。古典的な連結よりも優れています。 詳細説明

それを学んだら、それは非常に快適で、括弧を追加するためにこのようなトリックをすることができます。

  >>> ",".join("12345").join(("(",")"))
  '(1,2,3,4,5)'

  >>> lista=["(",")"]
  >>> ",".join("12345").join(lista)
  '(1,2,3,4,5)'
31
Wallebot

@Burhan Khalidの答え は良いのですが、私はこれがもっと理解しやすいと思います:

from str import join

sentence = ['this','is','a','sentence']

join(sentence, "-") 

Join()の2番目の引数はオプションで、デフォルトは ""です。

編集:この機能はPython 3で削除されました。

13
SilentVoid

Pythonの組み込み機能であるreduceも使用できます。 -

functoolsのインポートから減らす

sentence = ['this'、 'is'、 'a'、 'センテンス']

out_str = str(reduce(ラムダx、y:x + " - " + y、センテンス))

印刷(out_str)

これが役に立つことを願っています:)

2
Nishkarsh Dixit