Wie man eine Variable erkennt, ist iterabel, aber keine Zeichenfolge

Ich habe eine Funktion, die ein Argument akzeptiert, das entweder ein einzelnes Element oder ein doppeltes Element sein kann:

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

damit:

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

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

>>> iterable("ff")
no

Das Problem ist, dass die Zeichenfolge technisch iterierbar ist, sodass ich den ValueError beim Versuch nicht einfach abfangen kannarg[1]. Ich möchte nicht isinstance () verwenden, da dies keine gute Praxis ist (oder wie mir gesagt wird).

Antworten auf die Frage(7)

Ihre Antwort auf die Frage