как составить список списков с разницей между списками?
У меня есть список некоторых номеров:
l1 = [1,2,3,4,5,6,7]
и еще один:
l2 = [3,5,6]
Я хочу получить список интервалов с числами, которые существуют, в l2, но не в l1:
intervals = [[1,2],[4],[7]]
Я попытался сделать это вот так:
current_common_line_no = 0 for line in l1: if line in l2: current_common_line_no = line else: next_common_line_no = l2[(l2.index(current_common_line_no))+1] print next_common_line_no
получить список интервальных ребер, но что дальше?
- Сумма из нескольких списков индексов
- каждая запись списка nummered bij order
- разделять элементы списка в python
- Ошибка индекса python: 2 списка, которые находятся внутри списка
- Python: перечислить различия инициализации
Вы можете использовать groupby()
со списком:
from itertools import groupby [list(g) for k, g in groupby(l1, key=lambda x: x not in l2) if k] # [[1, 2], [4], [7]]
Используйте наборы. Python создал встроенные структуры данных. То, что вы ищете, – это разница. Вот документация.
Поэтому set.difference (x, y)
https://docs.python.org/2/library/sets.html
Дайте мне знать, если вам нужно больше, чем это
- Python: выбрасывает исключение в правильном примере использования в этом примере?
- Использование условия lambda if на разных столбцах в кадре данных Pandas
- Как найти определенную последовательность в списке?
- Поиск соседей в списке
- Как читать данные из текстового файла в массив с помощью Python
- Конденсация нескольких списков
- python: используйте кортежи для переупорядочения содержимого списка
- Список Python от читателя
- Создание полчаса средних значений списка
- Как выбрать некоторые элементы x-кортежа, возвращаемые функцией?
- Как сделать в то время как итерация быстрее?