Как сделать форматированный вывод списка?
Никак не могу понять одну ошибку:
TypeError: can only concatenate list (not "str") to list
Есть строка, в которую добавляются различные итемы и позже можно вывести итемы (перед последней должно быть and):
a = []
print("input")
while True:
name = input()
if name == "":
break
a = a + [name]
print(a[:-1] + " and " + a[-1])
Пробовал уже вводить str для принта отдельного элемента, выводить через list(()), tuple([]), но тогда получаю вот такой ответ:
['123', '456'] and 789.
Мне нужен результат такой, но без [] этих скобок.
Ответы (1 шт):
a[:-1] + " and " + a[-1]
а у вас список, a[:-1] - срез списка (т.е. список), " and " - строка, a[-1] - последний элемент списка, т.е. тоже строка
ну и как вы список с 2 строками складываете?
если вы вводите несколько строк и хотите чтобы они были превращены в строку, где последний ввод отделен от остальных через " and ", то делать это надо по другому
например в вашем коде надо список превратить в строку
' '.join(a[:-1]) + " and " + a[-1]
через метод join можно объединить все строки в списке в строку через разделитель
в данном примере через пробел