#list #insert #indexing #append
#Список #вставить #индексирование #добавить
Вопрос:
Итак, прямо сейчас у меня есть код, который дает мне
[-1], [1], [-1], [-1], [2], [3], [4], [-1], [5], [6], [7], [-1], [-1], [-1], [8], [9], [-1], [-1], [-1], [10]]
но я хочу, чтобы это выглядело так
myVV = [[-1, 1, -1, -1],[ 2, 3, 4, -1],[5, 6, 7, -1],[-1, -1, 8, 9],[ -1, -1, -1, 10]]
у меня есть цикл for со вставленной строкой
myVV.append([])
это дает мне это
[[], [-1], [1], [-1], [-1], [], [2], [3], [4], [-1], [], [5], [6], [7], [-1], [], [-1], [-1], [8], [9], [], [-1], [-1], [-1], [10]]
он вставляет разрыв, если я хочу, чтобы произошло разделение индексов.
Есть что почитать, что помогло бы мне решить эту проблему?
Ответ №1:
Используйте mod, чтобы проверить, пришло ли время добавить новый [] .
l = [[-1], [1], [-1], [-1], [2], [3], [4], [-1], [5], [6], [7], [-1], [-1], [-1], [8], [9], [-1], [-1], [-1], [10]]
l2 = []
for i in xrange(len(l)):
if i % 4 == 0:
l2.append([])
l2[i/4].append(l[i][0])
print l2
С принтами
[[-1, 1, -1, -1], [2, 3, 4, -1], [5, 6, 7, -1], [-1, -1, 8, 9], [-1, -1, -1, 10]]
Комментарии:
1. я немного смущен тем, что работает, я достиг желаемого результата, но не могли бы вы объяснить, как это работает? для будущих вещей, чтобы я мог изучить это и понять логику здесь.
2. @user3772157,
i%4
преобразуйте 0,1,2,3,4,5,6,… в 0,1,2,3,0,1,2,…, иi/4
преобразуйте 0,1,2,3,4,5, … в 0,0,0,0,1,1,… Это общие шаблоны, используемые в программировании. Вам просто нужно больше практики, и скоро вы начнете видеть те же шаблоны.3. Как бы я использовал mod, чтобы проверить, когда добавлять новую строку?
4. я отправил счетчик; однако, я не хочу, чтобы я хотел, потому что это приводит к тому, что они ломаются, как в шаблоне, я хочу добиться [#####][##][#######][#####################] что-то вроде этого # быть числами, конечно
5. @user3772157, извините, я не понимаю вашего вопроса. Пожалуйста, укажите ввод и вывод