[英]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.