如何利用集合判断字符串是否包含集合中的任意元素?
解决方法:判断字符串是否包含集合中的任意元素
嘿,我懂你要实现的需求啦——之前你是判断单个字符串是否属于集合,现在要反过来,检查目标字符串里有没有集合中的任意一个字符对吧?你写的{"A", "B", "C"} in String之所以不行,是因为in操作符在这里的逻辑搞反了:它是用来检查「左边的单个元素是否在右边的可迭代对象里」,而不是检查右边是否包含左边集合里的元素。
下面给你两种简单好用的正确实现方式:
方法一:用any()函数(最简洁高效)
any()函数会遍历集合里的每个字符,只要找到第一个出现在目标字符串里的字符,就会立刻返回True,不需要遍历完所有元素,性能很友好:
String = "ABCD" target_chars = {"A", "B", "C"} if any(char in String for char in target_chars): print("True") else: print("False")
方法二:用集合交集操作
把目标字符串转换成字符集合,然后和你的原集合求交集——如果交集不为空,就说明字符串里包含集合中的元素:
String = "ABCD" target_chars = {"A", "B", "C"} if target_chars & set(String): print("True") else: print("False")
这里set(String)会把"ABCD"转换成{'A','B','C','D'},&符号用来计算两个集合的交集,只要交集不是空集合,条件就成立。
两种方法都能实现你的需求,如果你处理的是很长的字符串,优先选any(),因为它提前终止的特性会更高效~
内容的提问来源于stack exchange,提问作者Rodrak
相关产品推荐
相关产品推荐

