Я пытаюсь создать скрипт, в котором между всеми нечетными цифрами в заданном номере помещается '-' (то есть 991453 будет 9-9-145-3), но для по какой-то причине python не позволит мне вставлять str в список целых чисел. Ошибка я продолжаю получать это 'TypeError: не все аргументы преобразуются во строки форматирования'Вставка строки в список целых чисел
Мой код:
def DashInsert(text):
list_int = map(int, list(text))
for i in xrange(len(list_int)-1):
if (list_int[i] % 2 == 1) and (list_int[i+1] % 2 == 1):
print i
list_int.insert(i+1,'-')
return list_int
Вот мой фактический ввод и ошибка:
999472
Traceback (последний звонок последний):
Файл "DashInsert.py", li пе 17, в
print DashInsert(string)
Файл "DashInsert.py", строка 11, в DashInsert
if (list_int[i] % 2 == 1) and (list_int[i+1] % 2 == 1):
TypeError: не все аргументы преобразуются во строки форматирования
Пожалуйста, покажите фактический ввод и фактическую ошибку. – thefourtheye
FYI это происходит потому, что вы изменяете (в частности, добавляете) список **, пока вы повторяете его **. Это почти никогда не бывает хорошей идеей. Я имею в виду, посмотри, что ты делаешь. Сначала вы включаете все в ints, но тогда вы найдете тот, который хотите, и вставляете ** строку ** в следующую позицию. Следовательно, в следующем раунде ваш '%' является строковым форматированием! –
@ Two-BitAlchemist Я понимаю, что вы говорите, но оператор if не должен позволять вставленному «-» через право? Поэтому я не понимаю, почему его не работает –