cómo decir una variable es iterable pero no una cadena

Tengo una función que toma un argumento que puede ser un solo elemento o un elemento doble:

<code>def iterable(arg)
    if #arg is an iterable:
        print "yes"
    else:
        print "no"
</code>

así que eso:

>>> iterable( ("f","f") )
yes

>>> iterable( ["f","f"] )
yes

>>> iterable("ff")
no

El problema es que la cadena es técnicamente iterable, por lo que no puedo capturar el ValueError cuando intentoarg[1]. No quiero usar isinstance (), porque no es una buena práctica (o eso me han dicho).

Respuestas a la pregunta(7)

Su respuesta a la pregunta