简体   繁体   English

在字典中找到素数?

[英]Find the prime numbers in dictionaries?

Output should be only prime numbers in list of values.输出应该只是值列表中的质数。

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)

This is wrong.这是错误的。 The program is not showing any prime numbers, printing all numbers.该程序未显示任何质数,而是打印所有数字。

You can do this in one line using the filter function and the isprime function from sympy like this:您可以使用来自sympyfilter函数和isprime函数在一行中完成操作,如下所示:

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)

Try it online! 在线试试吧!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM