Учитывая 2D-список:выберите элементы в списке по появлению нулей в питона
X = [ [a,2], [b,12], [c,6], [d,0], [e,2], [f,0], [g,0], [h,12], [i,18] ]
мне нужно получить 2D список, который группирует все подсписки, отделенные нулями в X[1]
колонке. Я имею в виду, мне нужно выбрать:
Y = [ [[a,2],[b,12],[c,6]], [[e,2]], [[h,12],[i,18]] ]
анг получить список соответствующих записей X[0]
только:
Y = [ [a, b, c], [e], [h, i] ]
Я уже задавал подобный вопрос для выбора элементов в списке, на основы появления нулей внутри него, но это был 1-й список. Используя itertools, я пытался что-то вроде:
Z = [list(v) for k, v in itertools.groupby(X[:,1], lambda x: x == 0) if not k]
где я X[:,1]
действовать на X[1]
части списка, так как отбор действует на нее. Но это, очевидно, дает мне X[1]
часть списка:
Z = [[2, 12, 6], [2], [12, 18]]
Но мне нужно X[0]
колонки ... как я могу использовать itertools на многомерных списков? Заранее спасибо.
вопрос не совсем ясен. каков ваш вклад и каков ожидаемый результат?«разделены нулями»? Я не видел нулей в вашем примере. попытался понять в течение двух минут и не удалось – Elisha
Вход в 'X', а желаемый результат -' Y' (второй). И нули находятся в 'X [1]' части списка 'X' (' [d, 0], [f, 0], [g, 0] '). – urgeo