Вы можете рассмотреть возможность группировки вашего списка. Пример:
l = [['1', 'f'], ['2', 'f'], ['3', 'f'], ['4', 'g'], ['5', 'g'], ['6', 'g']]
Чтобы сгруппировать список, используйте клавишу. В этом случае ключ будет вторым значением каждого элемента списка, поэтому x[1]
:
from itertools import groupby
for _, g in groupby(l, lambda x: x[1]):
print(list(g)[:2])
Разделите каждую группу, чтобы распечатать только первые два элемента, list(g)[:2]
.
Выход:
[['1', 'f'], ['2', 'f']]
[['4', 'g'], ['5', 'g']]
Примечание: это похоже на uniq
в оболочке. И это зависит или ключевые значения сортируются. Возможно, вам придется отсортировать данные перед использованием этого подхода.