2015-02-06 85 views
0

我工作了下面的實踐問題,從codingbat:檢查如果列表包含一個子列表

鑑於int數組,如果返回。1,2,3,...出現在真數組在某處。

我已經寫了:

def array123(nums): 
    array = [1,2,3] 
    for i in nums: 
     sub = nums[i:i+3] 
     if array == sub: 
      return True 
    return False 

它使當字符串是[1,2,3],數字作品的任何其他組合失敗。我明白編碼提供的解決方案,但我不明白爲什麼我的代碼在這種情況下只會失敗。我究竟做錯了什麼?

+2

因爲'for'不如你認爲的那樣工作。 – 2015-02-06 04:18:51

回答

2

for i in nums:先後分配到i項目列表nums的價值。然而,你似乎認爲它

分配真實指數而不是 - 也許這是因爲它就是它的等效結構將在JavaScript中。

因此,使i遍歷指數 - for i in range(len(nums)-3):和其餘的代碼似乎很好!

相關問題