Вывести числа строки, которые отсутствуют в проверочном списке
def func(s):
li = []
s = list(s)
check = [0,1,2,3,4,5,6,7,8,9]
for i in check:
if i not in s:
li.append(i)
return li
s = '9832209763'
func(s) >> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Функция вроде бы должна вывести [1,4,5]
Ответы (2 шт):
Автор решения: Амин
→ Ссылка
Твоя ошибка во время проверки:"if i not in s". Все числа из проверочного списка, имею тип int, а строка str, соответсвенно число не может быть в строке. Поэтомy надо написать: "if str(i) not in s".
Автор решения: CrazyElf
→ Ссылка
Но вообще можно тоже самое сделать гораздо короче - через разность множеств. Преобразование символов строки в числа у меня сделано через map(int, s):
s = '9832209763'
check = {0,1,2,3,4,5,6,7,8,9}
print(check.difference(map(int, s)))
На выходе:
{1, 4, 5}
Если на выходе надо получить именно список, то надо взять list() от результата. Сейчас у меня на выходе множество.
P.S. Вообще-то код у вас решает задачу, обратную той, что заявлена в вопросе - выводит те цифры из проверочного списка, которых не найдено в строке.