如何查找一个数字是否包含另一个数字中的任何数字

时间:2018-12-15 15:38:35

标签: python

我正在尝试编写代码以检查另一个数字(例如25)中是否存在数字(例如23)。

如果存在,我的函数应该为该检查返回false 例如: 25包含数字23中的数字2,因此返回false

4 个答案:

答案 0 :(得分:4)

您可以将整数转换为字符串,然后将字符串的元素转换为set,然后使用set.isdisjoint进行比较:

>>> a = 25
>>> b = 23

>>> set(str(a)).isdisjoint(str(b))
False

请注意,您无需将ab都转换为集合。 isdisjoint采取任何顺序,因为它将以线性方式经历,直到找到匹配的字符为止。首先从b建立集合是无效的。

答案 1 :(得分:1)

您可以使用类似这样的功能:

def shared_digits(a, b):
    return not any(map(lambda x: x in str(a), str(b)))

这将检查数字b中是否有任何数字在a上,并返回false。

答案 2 :(得分:0)

不确定是否要问“给出两个数字,我想知道第一个数字是否在第二个数字中”(这基本上是“检查子串”问题)或其他原因。< / p>

如果我猜对了,这可能对您有帮助:

if set(str(number1)).intersection(set(str(number2))):
    return False

答案 3 :(得分:0)

您可以使用all

>>> all(d in str(25) for d in str(21))
False
>>> all(d in str(2231) for d in str(31))
True