亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何找出數組是否包含數字3,以及是否有兩個3彼此相鄰

如何找出數組是否包含數字3,以及是否有兩個3彼此相鄰

qq_遁去的一_1 2022-08-25 14:56:46
給定一個整數列表,例如: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貢獻1815條經驗 獲得超10個贊

您可以使用 zip() 成對循環訪問數據:

any(a == b == 3 for a, b in zip(lst, lst[1:]))

然后進行鏈式比較,以檢查ab是否都等于3。函數 any() 檢查這些更改的比較是否為真。

FWIW,另一種循環成對()的方法顯示在文檔的迭代工具食譜部分。

希望這有幫助:-)


查看完整回答
反對 回復 2022-08-25
?
波斯汪

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:]):
    ...


查看完整回答
反對 回復 2022-08-25
?
大話西游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


查看完整回答
反對 回復 2022-08-25
  • 3 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號