Почему надо писать string.join(list), а не list.join(string)?
Меня это всегда смущало. Мне кажется что это:
my_list = ["Hello", "world"]
print(my_list.join("-"))
# результат: "Hello-world"
было бы понятнее, чем это:
my_list = ["Hello", "world"]
print("-".join(my_list))
# результат: "Hello-world"
Есть ли конкретная причина, по которой надо писать именно так?
Свободный перевод вопроса Why is it string.join(list) instead of list.join(string)? от участника Evan Fosmark
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
Это потому, что любой итерируемый объект может быть объединен (например: список, кортеж, словарь, множество), но его содержимое и «объединитель» должны быть строками.
Например:
'_'.join(['welcome', 'to', 'stack', 'overflow'])
'_'.join(('welcome', 'to', 'stack', 'overflow'))
'welcome_to_stack_overflow'
Использование чего-то другого, кроме строк, вызовет следующую ошибку:
TypeError: sequence item 0: expected str instance, int found