給定一個整數列表,例如:lst = [3,3,6,5,8,3,4,5]然后,我使用列表理解來找出數字3出現在此列表中的索引:[i for i, x in enumerate(lst) if x == 3]但是現在我無法弄清楚如何查看數字3是否位于另一個3旁邊,并將其返回為True
3 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
但是現在我無法弄清楚如何查看數字3是否位于另一個3旁邊,并將其返回為True
好吧,由于您的結果是可以找到3的所有索引的列表,因此您只需檢查任何兩個連續的索引,看看它們是否相差1。
可悲的是,“窗口化”迭代器仍然不是標準庫的一部分,但復制它們很容易:
indices = [3,3,6,5,8,3,4,5] for i, j in zip(indices, indices[1:]): ...

大話西游666
TA貢獻1817條經驗 獲得超14個贊
這是另一種非常直接的方法(有點過度使用)
def check(index, lst):
if index > 0 and lst[index] == lst[index - 1] and lst[index] == 3:
return True
if index < len(lst) and lst[index] == lst[index + 1] and lst[index] == 3:
return True
return False
lst = [3,3,6,5,8,3,4,5]
for index in range(len(lst)):
print(check(index, lst))
輸出:
True
True
False
False
False
False
False
添加回答
舉報
0/150
提交
取消