だから、リストを文字列に変換する最も「pythonic」な方法は何だろうと思っています。
例えば:
string_list = ['h', 'e', 'l', 'l', 'o']
# to the string
string = 'hello'
私はこの''.join(string_list)
方法を使用してきましたが、非常に単純なことを行うには、判読できず、迂遠な方法に近いと感じています。
より良い方法はありますか、またはこれを過度に複雑にしていますか?
だから、リストを文字列に変換する最も「pythonic」な方法は何だろうと思っています。
例えば:
string_list = ['h', 'e', 'l', 'l', 'o']
# to the string
string = 'hello'
私はこの''.join(string_list)
方法を使用してきましたが、非常に単純なことを行うには、判読できず、迂遠な方法に近いと感じています。
より良い方法はありますか、またはこれを過度に複雑にしていますか?
いいえ、それはそれを行うためのpythonicな方法です。
多分あなたはそれが読むべきだと感じるでしょう:string_list.join('')
。あなたは一人ではありません。
おそらく最も重要な利点は、これにより 反復可能.join()
なものすべてを処理できることです。
逆の場合は、各コレクションが独自にjoin()
メソッドを実装する必要があります。独自のコレクションを作成する場合、.join()
メソッドを追加しますか?おそらくそうではありません。
str
それがクラスのメソッドであるという事実は、それが常に機能することを意味します。驚きはありません。Pythonと、著者のArminRonacherjoin()
による驚き最小の原則などについてここで読んでください。Flask
関数/演算子についても同様の議論をすることができlen()
ます。これは、前述の記事の冒頭にあります。
を使用し''.join(string_list)
ます。組み込み型に名前を付けることに注意してくださいlist
。そのため、変数名には使用しないでください。Python 文字列は不変であるため、関係なく新しい文字列を作成する必要があります。''.join(s)
Python でこれを行う標準的で効率的な方法です。
複雑にしすぎていると思います。これはpython自体からのものです:
>>> list = ['h', 'e', 'l', 'l', 'o']
>>> sum(list, '')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: sum() can't sum strings [use ''.join(seq) instead]
したがって、python の推奨は を使用すること''.join
です。