Я перечислю требования и пример моего кода.Как исправить код?Проблема в том, что я не могу обновить значения dict.в логический формат. Может потребоваться, чтобы я прошел через все значения dict.проверить наличие True или False
Например, Initial: D = {"1": 2, "2": 3} Предназначено для вывода: D = {"1": True, "2": False}
Требования:
- Входными данными должны быть словарь (D) и открытый ключ RSA в виде кортежа (e, N). Словарь должен содержать ключи в качестве сообщений и значения в качестве подписей.
Выходными данными должен быть словарь с ключами в качестве сообщений (такой же, как во вводе), но сзначения, выраженные как True или False, если подпись соответствует значениям открытого ключа .
def Q1(D,key):
e = key[0]
N = key[1]
for k,v in D.items():
if (v ** key[0]) % key[1] == int(k) % key[1]:
D[v] = True
else:
D[v] = False
Возвращает ошибку:
> <RuntimeError Traceback (most recent call
> last) <ipython-input-3-9cfd98926b81> in <module>
> 9 D[v] = False
> 10
> ---> 11 Q6({"1":2,"2":3},(5,14))
>
> <ipython-input-3-9cfd98926b81> in Q6(D, key)
> 3 N = key[1]
> 4
> ----> 5 for k,v in D.items():
> 6 if (v ** key[0]) % key[1] == int(k) % key[1]:
> 7 D[v] = True
>
> RuntimeError: dictionary changed size during iteration>