Работа в Python 2.7.
У меня есть два списка (упрощено, чтобы пояснение было более понятным):
T = [[1, 0], [1, 0], [0, 5], [3, -1]]
B = [[1], [3], [2], [2]]
И три функции.
def exit_score(list):
exit_scores = []
length = len(list)
for i in range(0, length):
score = list[i][2] - list[i][0]
exit_scores.append(score)
return exit_scores
ПервыйЯ добавляю соответствующие значения B в соответствующие списки в T:
def Trans(T, B):
for t, b in zip(T, B):
t.extend(b)
a = exit_score(T)
b = T
score_add(b, a)
Затем, используя ранее перечисленную функцию exit_score.Я вычитаю значение в позиции списка [2] из значения в позиции списка [0] для каждого списка.Затем я добавляю эти результаты в другой список (exit_scores).
Наконец, я хочу добавить exit_scores (теперь a) к исходному списку.
Поэтому я использую свой Score_add (b,а) функция, которая является:
score_add(team, exit_scores):
for t, e in zip(team, exit_scores)
t.extend(e)
print team
Если бы все работало правильно, я получил бы вывод, подобный этому:
[[1,0,1,0], [1,0,3,-2], [0,5,2,-2], [3,-1,2,1]]
Вместо этого я получил TypeError, сообщающую мне, что я могу 'итерации по целому числу.Но я попытался напечатать и a, и b, и оба они находятся в форме списка!
Когда я изменяю код, чтобы убедиться, что результаты выхода находятся в списке:
def Trans(T, B):
es = []
for t, b in zip(T, B):
t.extend(b)
es.append(exit_score(T))
score_add(T, es)
весь список выходных баллов добавляется в конец первого списка T:
[[1, 0, 1, 0, 2, 2, -1], [1, 0, 3], [0, 5, 2], [3, -1, 2]]
Из-за жизни я не могу понять, что я делаю неправильно ...