回答:
使用join
:
>>> sentence = ['this','is','a','sentence']
>>> '-'.join(sentence)
'this-is-a-sentence'
sentence.join(" ")
逆の操作なので、私も同様に機能することを期待していましたlist.split(" ")
。これがリストのPythonのメソッドに追加されるかどうかはわかりませんか?
list.join
ため、任意のリストには不適切です。一方、の引数はstr.join
、単なるリストではなく、「反復可能な」文字列のシーケンスです。意味のある唯一のものは組み込み関数join(list, sep)
です。string
本当に必要な場合は、(基本的に廃止された)モジュールに1つあります。
' '.join(['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'
map(str, my_lst)
)=リストを列挙することなく、十分だろう
int
タイプですが、文字列として表現できる任意のタイプにすることができます。
' '.join(map(lambda x: ' $'+ str(x), my_lst))
返されます'$1 $2 $3 $4 $5 $6 $7 $8 $9 $10'
初心者にとって、結合が文字列メソッドである理由を知ることは非常に役立ち ます。
最初は非常に奇妙ですが、その後は非常に便利です。
結合の結果は常に文字列ですが、結合されるオブジェクトは多くのタイプ(ジェネレーター、リスト、タプルなど)になる可能性があります。
.join
メモリの割り当ては1回だけなので、高速です。従来の連結よりも優れています(拡張説明を参照)。
一度習得すれば、とても快適で、このようなトリックを実行して括弧を追加できます。
>>> ",".join("12345").join(("(",")"))
Out:
'(1,2,3,4,5)'
>>> list = ["(",")"]
>>> ",".join("12345").join(list)
Out:
'(1,2,3,4,5)'
が@Burhanハリドの答えは良いですが、私はそれがこのような、より理解しやすいと思います。
from str import join
sentence = ['this','is','a','sentence']
join(sentence, "-")
join()の2番目の引数はオプションであり、デフォルトは ""です。
編集:この関数はPython 3で削除されました
Pythonのreduce関数も使用できます。
from functools import reduce
sentence = ['this','is','a','sentence']
out_str = str(reduce(lambda x,y: x+"-"+y, sentence))
print(out_str)
join
ですか?
def eggs(someParameter):
del spam[3]
someParameter.insert(3, ' and cats.')
spam = ['apples', 'bananas', 'tofu', 'cats']
eggs(spam)
spam =(','.join(spam))
print(spam)
'-'.join(sentence)