Группировка Python по соседним элементам в списке с одинаковыми атрибутамиPython

Программы на Python
Anonymous
Группировка Python по соседним элементам в списке с одинаковыми атрибутами

Сообщение Anonymous »

Смотрите упрощенный пример:

Код: Выделить всё

A = [(721,'a'),(765,'a'),(421,'a'),(422,'a'),(106,'b'),(784,'a'),(201,'a'),(206,'b'),(207,'b')]
Я хочу сгруппировать соседние кортежи с атрибутом «a», каждые две пары, а кортежи с атрибутом «b» оставить в покое.
Итак, желаемый кортеж будет выглядеть так:

Код: Выделить всё

A = [[(721,'a'),(765,'a')],
[(421,'a'),(422,'a')],
[(106,'b')],
[(784,'a'),(201,'a')],
[(206,'b')],
[(207,'b')]]
Что я могу сделать, так это создать два отдельных списка, содержащих кортежи с и b.
Затем соединить кортежи в пары в и добавьте обратно. Но, похоже, это не очень эффективно. Есть ли более быстрые и простые решения?

Подробнее здесь: https://stackoverflow.com/questions/494 ... attributes

Вернуться в «Python»