cómo el especificador de formato toma valor mientras se pasa la lista de tuplas

Tengo un código de la siguiente manera:

tupvalue = [('html', 96), ('css', 115), ('map', 82)]

Entonces, al imprimir la tupla anterior en el formato deseado para un índice particular, encontré un código como este:

>>> '%s:%d' % tupvalue[0]
'html:96'

Me pregunto cómo el valor únicotupvalue[0] es reconocido como una tupla de dos valores por el especificador de formato'%s:%d'? Explique este mecanismo con una referencia de documentación.

¿Cómo puedo usar una comprensión para formatear todos los valores entupvalue en el formato requerido como en el ejemplo que se muestra?

Respuestas a la pregunta(1)

Su respuesta a la pregunta