2015-02-06 7 views
0

я работаю над следующей проблемой практики из codingbat:Проверка, если список содержит подсписок

Учитывая массив целых чисел, вернуть Правда, если .. 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], любая другая комбинация чисел работ. Я понимаю, что решение codingbat дает, но я не понимаю, почему мой код только терпит неудачу в этом случае. Что я делаю не так?

+2

Потому что 'for' не работает, как вы думаете. –

ответ

2

for i in nums: последовательно присваивает i ценность пунктов списка nums.

Однако вы, кажется, считают, что это назначение индексов, а не значения - возможно, потому, что это то, что эквивалентно конструкт бы в JavaScript.

Так что i итерацию по индексов - for i in range(len(nums)-3): и остальная часть кода кажется хорошо!

Смежные вопросы