Найти простые числа в словарях? - PullRequest
0 голосов
/ 06 марта 2020

Выходные данные должны быть только простыми числами в списке значений.

data_input = {'number_1': [3,6,9], 'number_2': [4,10,11,21,23], 'number_3': [10,12,15]}
for x,y in data_input.items():
    for num in y:
        if num>1:
            for i in range(1,num):
                if(num%i)==0:
                    break
                else:
                    data_input.append(num)

data_input.update()
print(data_input)

Это неправильно. Программа не показывает никаких простых чисел, печатая все числа.

1 Ответ

0 голосов
/ 06 марта 2020

Вы можете сделать это в одну строку, используя функцию filter и функцию isprime из sympy следующим образом:

import sympy

data_input = {'number_1': [3,6,9], 'number_2': [4,10,11,21,23], 'number_3': [10,12,15]}
data = {k: list(filter(sympy.isprime, v)) for k, v in data_input.items()}

print(data)

Попробуйте онлайн!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...