У Python є вбудований спосіб швидко перетворити список або інший ітерований об’єкт на один рядок — без циклів і зайвого коду. Канал Tech With Tim демонструє, як це зробити за допомогою методу join у поєднанні з map.

Що таке join і як він працює
Метод str.join(iterable) належить до рядків і дає змогу «склеїти» елементи ітерованого об’єкта (списку, кортежу тощо) в один рядок.
Базовий синтаксис:
delimiter.join(iterable)
delimiter— рядок‑роздільник, який вставляється між елементами (наприклад,", ","|","-").iterable— послідовність рядків, які потрібно об’єднати.
Приклад з комою та пробілом як роздільником:
items = ["apple", "banana", "cherry"]
result = ", ".join(items)
# result: "apple, banana, cherry"
Метод створює новий рядок, у якому всі елементи послідовності з’єднані вибраним роздільником.
Проблема: не всі елементи — рядки
join працює лише з рядками. Якщо в списку є числа або інші типи, без попереднього перетворення виникне помилка типів.
Наприклад, так не спрацює:
numbers = [1, 2, 3, 4]
", ".join(numbers) # TypeError
Щоб коректно об’єднати такі значення, їх потрібно спочатку перетворити на рядки.
Рішення в один рядок: map + join
Один із найлаконічніших способів — використати map для перетворення кожного елемента на рядок, а потім застосувати join:
numbers = [1, 2, 3, 4]
result = ", ".join(map(str, numbers))
# result: "1, 2, 3, 4"
Що тут відбувається:
map(str, numbers)застосовує функціюstrдо кожного елемента спискуnumbers, повертаючи послідовність рядків.", ".join(...)об’єднує ці рядки, вставляючи між ними кому та пробіл.
Цей підхід працює з будь-яким ітерованим об’єктом, не лише зі списками, за умови, що його елементи можна перетворити на рядок.
Гнучкі роздільники: не лише коми
Роздільник можна легко змінювати, не змінюючи логіку перетворення:
numbers = [1, 2, 3, 4]
result_comma = ", ".join(map(str, numbers))
# "1, 2, 3, 4"
result_pipe = "|".join(map(str, numbers))
# "1|2|3|4"
result_dash = " - ".join(map(str, numbers))
# "1 - 2 - 3 - 4"
Це зручно для формування CSV‑рядків, логів, виводу в консоль або будь-якого форматованого тексту, де потрібен конкретний роздільник.


