我正在嘗試創建一個“def”函式,該函式接受一個隨機字串串列和一個單獨的亂數串列,并將回傳一個以給定字母串列中的一個字母結尾的所有字串的串列。 例如:函式 'lastLetter' 有兩個引數:'str1',一個隨機字串串列和 'letters',一個隨機字母串列,并回傳 'str1' 中以 'letters' 中的字母結尾的所有字串。
uj5u.com熱心網友回復:
您可以使用串列理解、索引和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"]
print(has_final_letter(str1, letters)) # ['Horse']
當然,如果您有一個空字串,這將導致錯誤。為避免這種情況,您可以在andword and之間插入:ifword[-1]
[word for word in words if word and word[-1] in letters]
(現在讀出這句話,滿滿的word,感覺有點好笑lol。)
如果你想要一個完整的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
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/430669.html
