Python:如何将列表的最后一个元素与字符串的字符进行比较

时间:2014-07-03 18:19:53

标签: python string list comparison

我正在尝试获取列表的最后一个元素并将它们与字符串中的每个字符进行比较但是我的答案一直都是假的,谢谢

def isWordIn(secretWord, lettersGuessed):
    for i in secretWord:
        if lettersGuessed[-1:] == i:
            return True
        else:
            return False

print(isWordIn('tat', ['t']))

2 个答案:

答案 0 :(得分:0)

def isWordIn(haystack, needles):
    for i in range(0, len(haystack)):
        if needles[-1] == haystack[i]:
            return True
    return False

print(isWordIn('tat', ['t', 'a']))

我忘记了range()我认为,或者至少部分是这样 执行for i in len(...)就像执行for i in 10一样,您无法迭代整数。所以使用rangefor i in range(len(x))for i in range(0, len(x))相同,但我认为它看起来更清晰
其次,执行else: return会导致函数立即返回内容。你需要将负返回值放在循环之外并在找到某些东西时返回,否则你会过早地中断循环。

你也可以这样做:

def isWordIn(haystack, needles):
    for c in haystack:
        if needles[-1] == c:
            return True
    return False

print(isWordIn('tat', ['t', 'a']))

但是我没有看到总是抓住最后一针的点......

所以我想你想要的东西:

def isWordIn(haystack, needles):
    for c in haystack:
        for i in range(0, needles-1):
            if needles[i] == c:
                return True
    return False

print(isWordIn('tat', ['t', 'a']))

但那会很慢:)。

答案 1 :(得分:0)

正如其他人所说:关键问题是,当代码命中return时,它将执行该行并退出该函数。

如果你想要做的就是找出lettersGuessed [-1]是否在secretWord中你可能会找到

def isWordIn(secretWord, lettersGuessed):
    return lettersGuessed[-1] in secretWord

有用