Вычитание одиночной матрицы в выражении - PullRequest
0 голосов
/ 25 сентября 2018

Я совершенно новый пользователь Python 2.7.

Моя проблема в том, что мне нужно сделать расчет.У меня есть матрица.

A=[1, 2, 8, 10]

Я хочу автоматизировать расчет.

A[1]-A[0]=1
A[2]-A[1]=6

и так далее.

Но я не могу этого сделать.Пока у меня есть:

for n in xy_list:
    B=n[0][1:]-n[0][:3]
print B

Результат говорит:

TypeError: неподдерживаемые типы операндов для -: 'list' и 'int'

Надеюсь, вы можете помочь!

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Вы можете попробовать это следующим образом:

for n in range(1, len(A)):
    print(A[n] - A[n-1])

Здесь я предполагаю, что вы всегда хотите A[n] - A[n-1], где n - целочисленный индекс в A.

Если вы хотите напечатать его Причудливый способ:

for x in range(1, len(A)):
    print("A[{}] - A[{}]: {}".format(x, x-1, A[x] - A[x-1]))


A[1] - A[0]: 1
A[2] - A[1]: 6
A[3] - A[2]: 2
0 голосов
/ 25 сентября 2018

Насколько я понимаю, вы вообще не понимаете итерацию по массиву / списку.

Если вы выполните цикл по списку, у вас есть список xy_list и итератор n.n в данном случае это не массив.Это просто индекс, который увеличивается.Вам нужно будет получить доступ к списку в index n.Поэтому вместо кодирования n[0] вам лучше написать xy_list[n], который говорит: «элемент в xy_list с индексом n».

Если вы хотите вычесть xy_list [0] из xy_list [1], у вас естьнаписать B = xy_list[1] - xy_list[0]

Если вы хотите сделать это со всеми элементами в списке, вы должны закодировать цикл, который берет элемент в текущем индексе и вычитает элемент в индексе n-1

...