Python如何给变量存入多个字符串及判断A中任意字符串是否在B中
问题原因
你当前的代码存在2个核心问题:
- 你编写的
A = "hello", "nice"实际定义的是元组类型的变量,虽然这种方式确实可以在单个变量中存储多个字符串,但你后续的判断逻辑不符合Python的语法规则 if A in B的逻辑是尝试判断整个元组对象是否存在于字符串B中,Python不支持直接对元组和字符串做in包含判断,类型不匹配触发运行时异常,导致程序退出码为1。
问题1解决方案:单个变量存储多个字符串的实现方式
你可以通过三种常用的容器类型实现需求:
- 元组(不可修改):
A = ("hello", "nice")(你之前省略括号的写法也是合法的元组定义) - 列表(可修改):
A = ["hello", "nice"] - 集合(自动去重、查找效率更高):
A = {"hello", "nice"}
问题2解决方案:判断任意子字符串存在的实现
可以用Python内置的*any()*函数完成判断,该函数会遍历传入的可迭代对象,只要有一个元素满足条件就返回True,符合你的需求。
修正后的代码如下:
# 这里用列表、元组、集合存多个字符串都可以 A = ["hello", "nice"] B = "this dress is very nice" # 遍历A中的每个元素,判断是否存在于B中,任意一个存在就触发打印 if any(s in B for s in A): print("ok")
运行上述代码会正常输出ok。
内容的提问来源于stack exchange,提问作者ADDY
相关产品推荐
相关产品推荐

