删除包含特定char的集合的所有元素

eha*_*nom 4 python set

我有一组从发电机生成的几千个素数:

primes = set(primegen()) = set([..., 89, 97, 101, 103, ...])
Run Code Online (Sandbox Code Playgroud)

其中一些素数为零.我想摆脱它们.有没有办法一次完成这一切?

目前我正在删除元素,因为我循环遍历素数,正则表达式匹配:

import re
zero = re.compile('.+0.+') 

while primes:
    p = str(primes.pop())
    if zero.match(p):
        continue
    # do other stuff
Run Code Online (Sandbox Code Playgroud)

我认为这是最好的方式,但如果我错了,我很好奇.

roo*_*oot 8

您可以使用集合理解来过滤现有的素数集.

primes = {p for p in primes if '0' not in str(p)}
Run Code Online (Sandbox Code Playgroud)