Не получается решить задачу ЕГЭ
Выполняя авто-код для 1 задачи, столкнулся с проблемой:
Traceback (most recent call last):
File "C:\Users\mainuser\PycharmProjects\PythonProject1\main.py", line 8, in <module>
if all(str(var.index(x) + 1) in tab[var.index(y)] for x, y in pic):
~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mainuser\PycharmProjects\PythonProject1\main.py", line 8, in <genexpr>
if all(str(var.index(x) + 1) in tab[var.index(y)] for x, y in pic):
~~~~~~~~~^^^
ValueError: tuple.index(x): x not in tuple
Вот сам код:
from itertools import *
tab = "23 168 158 578 347 27 456 234".split()
pic = "ea af fc cg gh he de db bh bg df fa fc".split()
print(*range(1, 8))
for var in permutations("abcdefg"):
if all(str(var.index(x) + 1) in tab[var.index(y)] for x, y in pic):
print(*var)
Условия задачи:
Ответы (2 шт):
Автор решения: geo
→ Ссылка
Я бы добавил бы на вашем месте условие:
from itertools import *
tab = "23 168 158 578 347 27 456 234".split()
pic = "ea af fc cg gh he de db bh bg df fa fc".split()
print(*range(1, 8))
for var in permutations("abcdefg"):
if all(str(var.index(x) + 1) in tab[var.index(y)] for x, y in pic if var.count(y)>0 and var.count(x)>0):
print(*var)
Автор решения: geo
→ Ссылка
@Stanislav Volodarskiy указал, на возможность того, что автор задачи некорректно составлял символьный литерал и в его задачу не входит обработка ошибки нахождения символа. Поэтому, как альтернативное решение данной задачи предлагается такое, которое избавляет от ручного ввода литерала, как итерируемого объекта для перебора.
from itertools import *
tab = "23 168 158 578 347 27 456 234".split()
pic = "ea af fc cg gh he de db bh bg df fa fc".split()
for var in permutations(set((''.join(pic)))):
if all(str(var.index(x) + 1) in tab[var.index(y)] for x, y in pic):
print(*var)
