簡體   English   中英

檢查列表中項目是否總是緊隨其后-Python

[英]Check if an item is always followed by another in a list - Python

我想檢查列表中是否始終跟有另一個項目。 我想出了這個非常陳舊的示例...假設我想檢查以下列表中是否始終在“ a”后跟“ b”:

list = ['x','y','z','a','b','2','3','5','2','1','5','fds','f','s','a','b']

然后,理想情況下,如果每次我們看到“ a”,則函數直接返回“ b”,則該函數將返回TRUE。 誰能幫我這個? 也許我在這里錯過了一些非常簡單的事情。

all(a != 'a' or b == 'b' for a, b in zip(list[:-1], list[1:]))

您可以將all zip與O(n)解決方案一起使用。

itertools.islice用於避免制作新列表的itertools.islice 您還可以包裝以下功能。

from itertools import islice

def fun(lst, val1, val2):
    return all(j==val2 for i, j in zip(lst, islice(lst, 1, None)) if i==val1)

lst = ['x','y','z','a','b','2','3','5','2','1','5','fds','f','s','a','b']

res = fun(lst, 'a', 'b')

print(res)  # True

暫無
暫無

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

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