python: agrupa elementos de una tupla que tiene el mismo primer elemento

tengo una tupla como esta

[
(379146591, 'it', 55, 1, 1, 'NON ENTRARE', 'NonEntrate', 55, 1), 
(4746004, 'it', 28, 2, 2, 'NON ENTRARE', 'NonEntrate', 26, 2), 
(4746004, 'it', 28, 2, 2, 'TheBestTroll Group', 'TheBestTrollGroup', 2, 3)
]

Me gustaría obtener en su lugar esto:

[
(379146591, (('it', 55, 1, 1, 'NON ENTRARE', 'NonEntrate', 55, 1)), 
(4746004, (('it', 28, 2, 2, 'NON ENTRARE', 'NonEntrate', 26, 2), ('it', 28, 2, 2, 'TheBestTroll Group', 'TheBestTrollGroup', 2, 3)))
]

entonces, para cualquier elemento, cualquier cosa que no sea el primer elemento está dentro de una subtupla del mismo, y si el siguiente elemento tiene el mismo elemento que el primer elemento, se establecerá como otra subtupla del anterior.

entonces puedo hacer:

for i in data:
    # getting the first element of the list
    for sub_i in i[1]:
        # i access all the tuples inside

¿hay algunas funciones para hacer esto?

Respuestas a la pregunta(3)

Su respuesta a la pregunta