Почему следующий код возвращает два False пар?Проблема с itertools.groupby в Python
from itertools import groupby
content = '1\t2\t3\n4\t5\t\n7\t8\t9'
result = groupby((line.split('\t') for line in content.splitlines()),
key=lambda x: x[2] == '')
for k, v in result:
print '--->', k, id(k)
print list(v)
Результат, как показано следующее
---> False 505954168
[['1', '2', '3']]
---> True 505954192
[['4', '5', '']]
---> False 505954168
[['7', '8', '9']]
Что вы ожидали? – vaultah
Я ожидаю, что все элементы False находятся в одной группе – Jacky
Словарь будет способом группировки, groupby работает только для упорядоченных данных –