检查字符串中的任何字符是否在列表中

时间:2019-02-03 23:57:52

标签: python string list if-statement compare

这是一个Pig拉丁游戏,它可以正常工作,但是现在,如果我输入变量“特殊”定义的任何字符,我将其返回为True,但如果添加另一个字符,则其将返回false。


因此,它仅检查整个字符串,而不是字符串的任何字符。 我希望如果我输入“ Ban /”,它将作为无效返回。因此,如果在“单词”中找到“特殊”中定义的任何字符,我希望它返回true。

special = list('[@_!#$%^&*()<>?/\|}{~:]')
word=input("\nType in a word : ")
if word in special:
    print("Your entry is not valid.")
else:
    pigLatin()

我之前也尝试过此操作,但本质上是相同的

if word[0:] in special:

如果有帮助,这里是full snipet。条件符合以下条件:41

请注意,我是几天前开始的,所以看起来真的很乱。

1 个答案:

答案 0 :(得分:1)

浏览输入中的每个字符,然后逐个执行检查。您可以使用any()和生成器理解来做到这一点:

if any(i in special for i in word):
    print("Your entry is not valid.")

您还可以考虑通过检查setsword之间的交点是否为空来使用special

if set(word) & set(special):
    print("Your entry is not valid.")