[英]How to find the index of the last occurrence of nested list that contains a specific element?
[英]How do I find a specific occurrence of a list element in a string?
我一整天都可以找到有關在列表中查找項目的信息,但這個信息似乎在論壇中找不到(我的猜測是因為有一種更簡單的方法可以做到這一點 - 有些方法我還沒有學過)。
我正在做一個練習題,但我無法解決這個問題:在我的函數中,我需要檢查兩個列表以查看它們的任何項目(它們是字符串)是否出現在輸入(也是一個字符串)中。 此外,如果出現不止一次,我需要確定最后一次,以便我的 if 語句起作用。
對不起 - 我知道這是一個糟糕的解釋,但我很難描述它。 我會展示我的代碼。
注意:我只編程了幾個星期。 如果可能的話,我試圖將其保持在基本面的范圍內。 萬分感謝。
因此,這需要各種匈牙利語單詞,並根據單詞(字符串輸入)中元音的類型(前面或后面)將它們與適當的后綴連接起來。 問題是在一個或兩個列表中有兩個元音的單詞 - 我不知道如何在給定的輸入字符串中找到列表項的最后一個實例。
我已經嘗試過使用 find 方法並使用范圍 - 我承認這超出了我有限的知識范圍,我需要幫助。 再次感謝。
front = ['e', 'é', 'i', 'í', 'ö', 'ő', 'ü', 'ű']
back = ['a', 'á', 'o', 'ó', 'u', 'ú']
def dative(word):
for i in word:
if i in front:
return word+'nek'
if i in back:
return word+'nak'
例如:輸入“virág”應該輸出為“virágnak”,但它擊中了“i”,因為它是第一個索引出現並輸出“virágnek”。
您的代碼僅在第一次出現時有效,但您希望它在最后一次出現。
因此,嘗試反轉字符串,以便第一次出現實際上是所選字符串中的最后一次出現。
例子:
for i in reversed(word):
正如已經說過的另一個答案,您可以在迭代字母之前反轉單詞(使用reversed()
)。
我還建議對您的代碼進行一些更改,以解決找不到匹配項的情況(我使用break
語句退出循環):
front = ['e', 'é', 'i', 'í', 'ö', 'ő', 'ü', 'ű']
back = ['a', 'á', 'o', 'ó', 'u', 'ú']
def dative(word):
suffix = ''
for i in reversed(word):
if i in front:
suffix = 'nek'
break
if i in back:
suffix = 'nak'
break
return '{}{}'.format(word, suffix)
這按預期工作(我不知道這些詞是否有效,但它們表明該函數做了它應該做的事情):
>>> dative('virág')
virágnak
>>> dative('vireg')
viregnek
>>> dative('virug')
virugnak
>>> dative('vrg') # no suffix added
vrg
你需要提供更多的例子來檢查它是否真的像它應該的那樣工作,但對於這個例子,它似乎可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.