2010-04-10 6 views
-2
A=s.append(s[i]+A+B) 

A = s.append (s [я] + A + B) TypeError: неподдерживаемый тип операнда (ов) для +: 'длинные' и что делает это 'ул'питона списки ошибок

ошибка означает? A и B являются строками, а s - это список

+1

Относительно вашего раннего http://stackoverflow.com/questions/2612461/indexing-error-in-list-in-python Рассмотрите возможность редактирования оригинала. –

ответ

4

s может быть список, но элемент - s[i] - это не - это длинный, как указано ошибка.

Кроме того, append() действует непосредственно в списке - он возвращает None, так что вы на самом деле устанавливаете A как None - возможно, не то, что вы хотели!

Есть две вещи, которые вы можете сделать, чтобы избежать такого рода ошибок в будущем.

  1. Не используйте одноименные имена переменных. Используйте описательные имена длиной от одного до трех слов, которые описывают то, что имеет в нем переменную (и/или то, что предполагается использовать).

  2. Когда у вас есть проблемы, попробуйте положить его в попытке/за исключением блока, в котором вы кладете имя ошибки после except и распечатать обижая переменные:

try: 
    s.append(s[i]+A+B) 
except TypeError: 
    print "Failed to add", s[i], ",", A, ",", "and", B 
    raise 

Дон Забудьте об raise в конце - так вы не просто проигнорируете проблему и начнете получать действительно странные ошибки.

0

Если A и B являются строками, тогда s [i] должен быть «длинным».

0

s [i], вероятно, длинный. Вы не можете добавить длинную строку.

Try:

A=s.append(str(s[i])+A+B)