Как убрать скобки с вывода (т.е. [ ]) и прочее

У меня проблемы с получением правильного вывода для моего кода (для школы).
st = строка ввода
ch = ввод символов (это для python для поиска ch в st)
Код находит как верхний, так и нижний регистр символа, который я вставил для ch, и показывает их положение в выводе (в обратном порядке).
Итак, я набрал этот код в

def whichPositionsRev (st, ch):
    if ch in st:
        inverseFindChar = [index for index,char in enumerate(list(st)) if char==ch ]
        return "Yes..." + str(inverseFindChar[::-1])
    else:
        return "No"

Я предполагаю получить "Да...8 5 2" в качестве возвращаемого значения (если я набрал "abXabXabX" для st и "X" для ch), но я продолжаю получать "Да...[8, 5, 2]'в качестве выхода. Я хочу знать, какой код детали вызывает его в скобках и запятых в возвращаемом выводе?

2 ответа

Потому что ты звонишь str() в массиве вы получаете строковое представление массива.

замещать

str(inverseFindChar[::-1])

с

" ".join(str(x) for x in inverseFindChar[::-1])

Часть, о которой вы спрашиваете, str() вызов функции. Python помещает скобки и запятые в вывод, чтобы вам было легче видеть элементы массива.

Если вы хотите разделить элементы массива пробелами, используйте

" ".join(map(str, inverseFindChar[::-1]))
Другие вопросы по тегам