2013-03-06 3 views

ответ

2

Прежде всего, не используйте «список» в качестве имени переменной. Во-вторых, вы вызываете сумму для значения int не для списка, и именно поэтому вы получаете ошибку. Проверьте свой код, пожалуйста.

Не уверен, но ваш код может выглядеть так:

def evenrow(list): 
    for row in list: 
     value = sum(row) 
     if values is even: # put your condition here 
      # do something 
     else: 
      print "Value is odd" 
+0

Спасибо за помощь, это имеет смысл! – user2124939

0

Вам не нужно следующую строку кода: n=sum(newNums). Вы уже суммировали все позиции строки в строке newNums += item. Во-вторых, вы должны объявить newNums перед тем, как использовать его в своем коде. Таким образом, фиксированная версия коды будет выглядеть следующим образом:

def evenrow(list): 
    for row in list: 
     newNums = 0 
     for item in row: 
      newNums += item 
     print(newNums) 

BTW: Вы должны рассмотреть вопрос о принятии ответов на некоторые из ваших предыдущих вопросов, иначе никто не будет тратить свое время, чтобы ответить на ваши новые вопросы.

+0

Эй, спасибо за ответ. Один из моих двух предыдущих вопросов был закрыт, поэтому я прекратил публикацию об этом. С другой стороны, я ответил благодарностью за ответы, которые я получил. Я что-то пропустил? Извините, что я новичок. – user2124939

+0

Если вы видите ответ, который вам помог, вы можете принять его, нажав галочку под номером ответа, поэтому этот тик станет зеленым. Это означает, что вы приняли ответ, и сообщество может ответить на другие вопросы, не глядя на вас. :) Похоже, [Artsiom Rudzenka] (http://stackoverflow.com/users/781150/artsiom-rudzenka) [дал вам хороший ответ] (http://stackoverflow.com/a/15238916/885028), поэтому вы может принять его. – aga

1

Просто альтернативный метод:

def evenrow(lst): 
    return sum(map(sum,lst))%2 == 0 #True if even, False otherwise. 

Это работает так:

Наружный sum складывает все пункты map, который применяется sum к каждому элементу в lst. В python2 карта возвращает объект list, а в python3 возвращает объект map. Это передается внешней функции sum, которая суммирует все элементы в вашем map.

def evenrow(lst): 
    return sum(itertools.chain(*a)) % 2 == 0 

Это расширяет все элементы в a (каждый из подсписков), и цепи их вместе, как chain объекта. Затем он объединяет все элементы и определяет, равна ли сумма.

+0

Спасибо. Я раньше не использовал метод карты, но код выглядит приличным. еще раз спасибо – user2124939

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