1. ホーム
  2. python

[解決済み] なぜlist.join(string)ではなくstring.join(list)なのでしょうか?

2022-03-14 02:03:46

質問

これはいつも私を混乱させる。この方がすっきりするような気がするのですが。

my_list = ["Hello", "world"]
print(my_list.join("-"))
# Produce: "Hello-world"

これより

my_list = ["Hello", "world"]
print("-".join(my_list))
# Produce: "Hello-world"

このような状態になる具体的な理由はあるのでしょうか?

解決方法は?

それは、どんな反復子でも結合できるからです(例:リスト、タプル、ディクト、セット)。しかし、その内容と "joiner"。 でなければなりません。 文字列です。

例えば

'_'.join(['welcome', 'to', 'stack', 'overflow'])
'_'.join(('welcome', 'to', 'stack', 'overflow'))

'welcome_to_stack_overflow'

文字列以外を使用すると、以下のエラーが発生します。

TypeError: sequence item 0: expected str instance, int found