给定一个整数列表,例如: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
提交
取消