例如,我想检查数字“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)
(请注意,set
的 in
是高性能的)
然后,检查 s
是否包含所有 013456789
数字:
print(s.issuperset("013456789"))
(如果这必须多次完成,可能值得用字符串创建一个set
,issuperset
会更快)
关于python - 如何检查特定数字是否为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42426242/