Я пытаюсь сделать что-то простое, однако я не понимаю полученную ошибку. Я пробовал гуглить операнды и транслировать (python говорит, что это то, что я делаю, и я делаю это неправильно), но это мне не помогло. Я тоже не смог найти ответ на SO, но, возможно, я использую неправильные условия поиска.
У меня есть список из 64 подсписков, в которых 64 записи. Я хочу создать новый список, в котором каждый подсписок имеет свои записи, перемещенные в одну сторону (вперед или назад, не имеет значения), затем конец обрезается, а начало дополняется нулями, поэтому в нем все еще есть 64 записи. Я думал, что знаю, как это сделать, но мое решение не работает, и я не понимаю ошибки. Пишет, что я веду трансляцию и что я делаю это неправильно. Однако я только что сделал несколько списков (которые предназначены только для циклов, верно?) и соединил их.
Цель:
1 2 3 4 5 1 2 3 4 5
1 2 3 4 5 0 1 2 3 4
1 2 3 4 5 becomes 0 0 1 2 3
1 2 3 4 5 0 0 0 1 2
1 2 3 4 5 0 0 0 0 1
Моя попытка:
result = [ [[0 for hh in range(ii)]+originallist[0][jj][0+ii:] for ii in range(64)] for jj in range(64)]
(дополнительный [0] за исходным списком присутствует, потому что списки, которые я описал выше, сами по себе являются подсписками одного материнского списка, но в этом примере я рассматриваю только один такой список)
Результат:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-51-5261c3ba129a> in <module>()
----> 1 result = [ [[0 for hh in range(ii)]+originallist[0][jj][0+ii:] for ii in range(64)] for jj in range(64)]
<ipython-input-51-5261c3ba129a> in <listcomp>(.0)
----> 1 result = [ [[0 for hh in range(ii)]+originallist[0][jj][0+ii:] for ii in range(64)] for jj in range(64)]
<ipython-input-51-5261c3ba129a> in <listcomp>(.0)
----> 1 result = [ [[0 for hh in range(ii)]+originallist[0][jj][0+ii:] for ii in range(64)] for jj in range(64)]
ValueError: operands could not be broadcast together with shapes (0) (64)