我正在尝试编写代码以检查另一个数字(例如25)中是否存在数字(例如23)。
如果存在,我的函数应该为该检查返回false 例如: 25包含数字23中的数字2,因此返回false
答案 0 :(得分:4)
您可以将整数转换为字符串,然后将字符串的元素转换为set
,然后使用set.isdisjoint
进行比较:
>>> a = 25
>>> b = 23
>>> set(str(a)).isdisjoint(str(b))
False
请注意,您无需将a
和b
都转换为集合。 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