打印给定字符串的某些字母的函数

Function that prints certain letters of a given string

我正在尝试创建一个 'def' 函数,它接受一个随机字符串列表和一个单独的随机数列表,并将 return 一个以以下之一结尾的所有字符串的列表给定字母列表中的字母。 例如: 函数 'lastLetter' 有两个参数:'str1',一个随机字符串列表,和 'letters',一个随机字母列表,returns 'str1' 中的所有字符串以 'letters'.

中的字母结尾

您可以使用列表理解、索引和 in:

def has_final_letter(words, letters):
    letters = set(letters) # you can omit this
    return [word for word in words if word[-1] in letters]

str1 = ["Horse", "Cow", "Pig"]
letters = ["a", "b", "e"] # or letters = 'abe'

print(has_final_letter(str1, letters)) # ['Horse']

当然,如果您有一个空字符串,这将导致错误。为避免这种情况,您可以在 ifword[-1] 之间插入 word and:

[word for word in words if word and word[-1] in letters]

(现在读出这句话,全是word,感觉有点好笑哈哈。)


如果你想要完整的 for 循环版本:

def has_final_letter(words, letters):
    output = []
    for word in words:
        if word == '': # check if word is empty
            continue # skip this empty word
        for letter in letters:
            if word[-1] == letter:
                output.append(word)
    return output