检查值是否等于数组中的任何值

时间:2013-08-08 18:03:14

标签: python

我是python(以及一般编程)的新手,我似乎无法通过自己找到解决方案。我想检查字符串的第一个字母是否等于存储在数组中的任何字母,如下所示:

letter = ["a", "b", "c"]
word = raw_input('Enter a word:')
first = word[0]

if first == letter:
    print "Yep"
else:
    print "Nope"

但这不起作用,有人知道它会怎样?提前谢谢!

4 个答案:

答案 0 :(得分:14)

您需要使用in运算符。使用if first in letter:

>>> letter = ["a", "b", "c"]
>>> word = raw_input('Enter a word:')
Enter a word:ant
>>> first = word[0]
>>> first in letter
True

一次虚假测试,

>>> word = raw_input('Enter a word:')
Enter a word:python
>>> first = word[0]
>>> first in letter
False

答案 1 :(得分:5)

尝试使用in关键字:

if first in letter:

在当前代码中,您将字符串字符(first等于word中的第一个字符)与列表进行比较。所以,假设我的输入是"a word"。你的代码实际上在做什么:

if "a" == ["a", "b", "c"]:

总是假的。

然而,使用in关键字正在执行:

if "a" in ["a", "b", "c"]:

测试"a"是否是["a", "b", "c"]的成员,并在这种情况下返回true。

答案 2 :(得分:4)

提示在您的问题中。使用any。这使用生成器表达式来检查它是True还是False。

any(first == c for c in letter)

答案 3 :(得分:0)

我看到的问题是,你问的是一个字符是否等于一个数组。这将始终返回false。

尝试使用循环检查'first'中每个项目的'first'。如果您需要帮助来确定如何执行此操作,请告诉我。