簡體   English   中英

獲取基於特定項目的先前值

[英]Get previous value based in specific item

我正在嘗試一個腳本,我們使用列表項,然后我將獲得前一項。

lst = [1, 3, 4, 6, 8, 10]

next_item = next((x for x in lst if x > 6), None)
print next_item #8

此代碼適用於6之后的項目。但是我需要6之前的項目。

我正在尋找一個prev方法的文檔,但我找不到任何相關的東西。 有什么想法嗎?

假設“之前”是指“先前在lst ”,則沒有必要使用這種復雜的方式。 這個

lst[lst.index(6) - 1]

會給

4

而這個

lst[lst.index(6) + 1]

會給

8

當然,您應該檢查索引超出范圍的錯誤。

您可以使用反向條件循環反轉列表:

>>> next((i for i in lst[::-1] if i<6),None)
4

如果你正在尋找的第一個數字比6大lst ,這是做這件事:

lst = [1, 3, 4, 6, 8, 10]
lst2 =[]
for num in lst:
    if num > 6:
        lst2.append(num)
        lst2.sort()
print lst2[0]

輸出為8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM