seleccione un solo elemento de una colección: Python

Creé una función de utilidad para devolver el elemento individual esperado de una expresión generadora

print one(name for name in ('bob','fred') if name=='bob')

¿Es esta una buena manera de hacerlo?

def one(g):
    try:
        val = g.next()
        try:
            g.next()
        except StopIteration:
            return val
        else:
            raise Exception('Too many values')
    except StopIteration:
        raise Exception('No values')

Respuestas a la pregunta(8)

Su respuesta a la pregunta