如何检查逗号分隔字符串的元素是否存在于指定列表中
问题场景
先看这段代码:
a = "3" b = ["3"] def func(): return a in b
这段函数会返回True。
但如果代码改成如下形式:
a="1,2,3,4" b = ["3"]
需要实现逐个检查a拆分后的每个元素是否在b中,只要其中"3"存在于b就返回True,该怎么做?
解决方案
核心是先把字符串a按逗号分割成元素列表,再逐个检查匹配情况,以下是两种实现方式:
方式一:用any()函数(简洁写法)
any()函数会遍历可迭代对象,只要有一个元素满足条件就返回True,代码如下:
a = "1,2,3,4" b = ["3"] def func(): # 按逗号拆分字符串为元素列表 a_elements = a.split(',') # 遍历每个元素检查是否在b中,有匹配就返回True return any(element in b for element in a_elements)
方式二:手动循环遍历
如果想更直观地控制遍历过程,可以用循环实现:
a = "1,2,3,4" b = ["3"] def func(): a_elements = a.split(',') for element in a_elements: if element in b: return True # 遍历完所有元素都没匹配,返回False return False
说明
a.split(',')会将字符串"1,2,3,4"拆分为列表["1", "2", "3", "4"],之后无论是用any()还是循环,都能逐个验证每个元素是否存在于b中,满足需求。
内容的提问来源于stack exchange,提问作者Anirudh
相关产品推荐
相关产品推荐

