第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Python列表中查找項目的最后一次出現(xiàn)

如何在Python列表中查找項目的最后一次出現(xiàn)

眼眸繁星 2019-09-24 10:28:25
說我有這個清單:li = ["a", "b", "a", "c", "x", "d", "a", "6"]據(jù)幫助顯示,沒有內(nèi)置函數(shù)返回字符串的最后一次出現(xiàn)(如的反向index)。因此,基本上,如何找到"a"給定列表中的最后一個出現(xiàn)?
查看完整描述

3 回答

?
倚天杖

TA貢獻1828條經(jīng)驗 獲得超3個贊

如果您實際上僅使用示例中顯示的單個字母,則將str.rindex很方便。ValueError如果沒有這樣的項目,則會引發(fā)一個與list.index將引發(fā)的錯誤類別相同的錯誤類。演示:


>>> li = ["a", "b", "a", "c", "x", "d", "a", "6"]

>>> ''.join(li).rindex('a')

6

對于更一般的情況,您可以list.index在反向列表中使用:


>>> len(li) - 1 - li[::-1].index('a')

6

這里的切片將創(chuàng)建整個列表的副本。短列表很好,但是對于li很大的情況,使用惰性方法可以提高效率:


def list_rindex(li, x):

    for i in reversed(range(len(li))):

        if li[i] == x:

            return i

    raise ValueError("{} is not in list".format(x))

一線版:


next(i for i in reversed(range(len(li))) if li[i] == 'a')


查看完整回答
反對 回復 2019-09-24
?
哆啦的時光機

TA貢獻1779條經(jīng)驗 獲得超6個贊

像伊格納西奧(Ignacio)一樣的單線飛機會更簡單/更清晰


max(loc for loc, val in enumerate(li) if val == 'a')

在我看來,這似乎很清楚且具有Python風格:您正在尋找包含匹配值的最高索引。不需要下一步,lambda,reverses或itertools。


查看完整回答
反對 回復 2019-09-24
  • 3 回答
  • 0 關(guān)注
  • 1826 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號