微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 如何检查特定数字是否在整数中

我想检查一下,例如,数字’2’是否在4059304593中.
我的目的是检查是否有任何数字1-9不在我的整数.这是我尝试过的:

for i in xrange(10):
    for j in xrange(100):
        num = str(i^j)
        one_count = 0
        two_count = 0
        for k in xrange(len(num)):
            if num[k] == 1:
                one_count += 1
            if num[k] == 2:
                two_count += 1

然后我的“计数”将一直下降到nine_count,如果任何计数为0,那么该数字不在’num’中.从我在这些网站上看到的内容来看,我的脚本效率低下 – 有人能指出更好的方法吗?

解决方法

这个“数字”的东西需要一个字符串方法,而不是数字方法(让我想起一些 Project Euler个谜题).

我先创建一个数字的数字(同时删除重复数字)

s = set(str(4059304593))

然后检查一个数字:

print('2' in s)

(注意,对于一个集合是高性能的)

然后,检查s是否包含所有013456789数字:

print(s.issuperset("013456789"))

(如果必须多次执行此操作,可能需要使用字符串创建一个集合,issuperset将更快地工作)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐