Ich muss ein Objekt analysieren, das aus Listen besteht. Aber es kann Liste innerhalb der Liste innerhalb der Liste haben: obj=[[smth1],[[smth2],[smth3]]]
jede smthX
kann auch eine Liste sein.Was sollte ich anstelle von isinstance() verwenden
Ich bin auf der Suche nach einem Wert, den ich weiß, ist in einer "Second-Layer-Liste". In meinem Beispiel könnte es sein in [[smth2],[smth3]]
Was ich gerade mache ist auf meinem Objekt iterieren, und testen, ob was ich Iterate auf eine Liste awell bin. Wenn es so ist, suche ich nach meinem Wert.
for list in obj :
if isinstance(list, obj) :
for souslist in list :
I LOOK FOR MY VALUE
Aber ich bin überall (http://canonical.org/~kragen/isinstance/ viele Stackoverflow Thread) zu lesen, dass die Verwendung von isinstance()
nur für besondere Anlässe ist (und meine Verwendung sieht nicht aus wie ein besonderes Ereignis)
Vor der Verwendung isinstance()
Ich habe getestet, welche Liste [0] mich in einem Versuch/außer mir zurück gab, aber es fühlte sich sogar falsch an. Irgendein alternativer Weg, um dies sauber zu erreichen? (Ich habe keine Macht über das Format meiner obj
Ich muss daran arbeiten)
Ihre Nutzung von 'isinstance' mir scheint in Ordnung, eigentlich. 99% meiner eigenen 'isinstance'-Verwendung ist, wenn ich eine Sammlung heterogener Typen durchsuche, was genau das ist, was Sie hier tun. (Ich poste dies als Kommentar und nicht als Antwort, weil es nur meine Meinung ist.) – Kevin
Was meinst du genau mit * Second Layer List *? Wenn Sie die Objekte mit 2 verschachtelten Listen finden möchten, können Sie dies nicht in der ersten Schleife erreichen. – Kasramvd
Es ist nichts falsch daran, 'isinstance' in Ihrem Fall zu verwenden. Deine erste Herangehensweise war auch in Ordnung, da Python an "leichter um Vergebung als um Erlaubnis bitten" glaubt: https://docs.python.org/3.4/glossary.html#term-eafp – DeepSpace