python - 如何检查特定数字是否为整数

标签 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)

(请注意,setin 是高性能的)

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

print(s.issuperset("013456789"))

(如果这必须多次完成,可能值得用字符串创建一个setissuperset 会更快)

关于python - 如何检查特定数字是否为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42426242/

相关文章:

python - Pandas 根据 2 列删除重复项,有时会颠倒

python - 如何删除 Cartopy/Matplotlib 图周围的框架和轴?

python - tensorflow,如何索引张量的真实值?

python - 在 python 3.3 中从 .txt 向收件人发送电子邮件

python - 将一系列对象加载到列表中的优雅方式

python - Spark 上的行明智计算

python - 基于另一列中的值的累积计数

python - 自定义 Tkinter 图像

python - 在 Pandas 数据框中,如何将所有元素 x 替换为元素 y?

python - 可以使用 MRO 来覆盖混入吗?