List странно работает

Я тут делаю 1-го бота на pytelegramBotAPI. Мне нужно, чтобы бот получил название объекта при написании /start, а потом через next_step_handler получал цену и всё это записывал в список list, и потом его print'овал. Всё то готово, но возникли проблемы со списком list: он не выводит полными словами (название) или цифрами (цена), а выводит по символам. После теста, print выдал:

['Б', 'о', 'н', 'с', 'а', 'й', '2', '0', '0', '0'].

Хотя ожидался результат такого вида:

['Бонсай', '2000']

Код (рабочий, и протещенный):

    import telebot
    bot = telebot.TeleBot('')
    import sqlite3
    conn = sqlite3.connect('nb.db', check_same_thread = False)
    c = conn.cursor()

    @bot.message_handler(commands=['start'])
    def start(message):
        bot.send_message(call.message.chat.id, "Хорошо.. название, к примеру:\nЯпонский Бонсай")
        bot.register_next_step_handler(call.message, Costmerch)
    def Costmerch(message):
        merch = []
        merch += message.text
        bot.send_message(message.chat.id, 'Теперь же, цена. Минимум - 1000, Максимум - 10000000')
        bot.register_next_step_handler(message, Costmerch, merch)
    def Costmerchprint(message, merch):
        merch += message.text
        print(merch)

Ответы (1 шт):

Автор решения: V-Mor

Добавление элемента в список так, как Вы этого ожидаете делается с помощью метода append, а не оператора +=. Измените Вашу строку кода на следующую:

merch.append(message.text)

А оператор += для операндов типов list и str работает именно так, как Вы продемонстрировали в "неверном" варианте, виноват не "бамбук", а стандарт языка, в котором описана такая работа.

→ Ссылка