Можно ли метод join использовать со строками?
Прочитал на многих сайтах про метод join, что он используется со списками и является обратным методу split. Но со split понятно, что он не разрывно связан со списками, а вот можно ли join применять к строкам, а не к спискам?
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Можно:
print('-'.join("123"))
# '1-2-3'
PS.
Метод str.join работает с итерируемые объектами (списки, кортежи, словари, и т.п.), поэтому ему важно только то, чтобы объект, который ему передают мог итерироваться, например генератор:
def foo():
yield "1"
yield "2"
yield "3"
print('-'.join(foo()))
# 1-2-3
Пример реализации итерирования у пользовательского класса:
class Foo:
def __init__(self, max_value):
self.max_value = max_value
def __iter__(self):
self.i = 0
return self
def __next__(self):
if self.i >= self.max_value:
raise StopIteration()
self.i += 1
return str(self.i)
print('-'.join(Foo(3)))
# 1-2-3