2016-04-06 14 views
-2

Ist es mir möglich, Folgendes zu tun, und wenn ja, was mache ich falsch?Kann ich find sowohl für eine nicht leere als auch für eine leere Liste verwenden?

Ich möchte das letzte Element in einer Liste abrufen, und verlassen Sie sich auf .find(), um das letzte Element zurückzugeben, auch wenn die Liste leer ist.

Ich habe eine Liste wie folgt aus:

list = ["item1", "item2", "item3", "etc"]

und ich möchte auch das letzte Element erhalten, wenn es leer ist. Dazu greife ich mit list[-1:] auf das letzte Element zu. Mein Problem ist, dass ich glaube, dass ich das .find() auf dem letzten Element dieser Liste verwenden muss. Wenn die Liste jedoch leer ist, funktioniert .find() nicht.

Der Grund, der nicht funktioniert, ist, weil list[-1]etc zurückgibt, aber list[-1:] wird ['etc'] zurückgeben. Irgendwelche anderen Möglichkeiten, .find() in dieser Situation zu verwenden?

+2

Wenn es leer ist, wie kann eine Liste _have_ ein letztes Element? –

+0

Es wäre viel besser, Ihren Code neu zu schreiben, so dass Sie _check_ wenn die Liste leer ist mit einfachen if/else-Anweisungen und etwas anderes tun. Wenn dein gesamter Plan darin besteht, '.find()' auf einem nicht vorhandenen Gegenstand zu tun, wirst du große Probleme haben :) –

+0

Du willst 'find' für ein Element benutzen, das nicht existiert. Was willst du das überhaupt? Wären Sie in der Lage, das letzte Auto in einer leeren Garage zu fahren? Den letzten Kartoffelchip in einer leeren Tüte essen? Die Sache, die du versuchst zu tun, ist nicht sinnvoll; Sie müssen die Leere der Liste erkennen und etwas anderes tun. – user2357112

Antwort

0

Warum können Sie nicht testen, ob etwas in der Liste ist, und dann suchen?

>>> list = [] 
>>> if list: 
     #You would use find here. 
...  print("not empty") 
... else: 
...  print("empty") 
... 
empty 
>>> 
+0

Ich habe es tatsächlich mit if len (list)> 0, aber Ihr Code funktioniert auch –

+0

@ D.Joe Ich weiß nicht, was ein Purist würde sagen. Das Aufrufen einer Funktion "len" ist möglicherweise teurer als die Verwendung von "if-Liste", aber wenn Code funktioniert und Sie es verstehen, würde ich sagen, dass jeder Weg gut ist. – octopusgrabbus

+0

@ D.Joe: Es ist besser, 'if list:' zu verwenden. Siehe [hier] (https://stackoverflow.com/questions/53513/best-way-to-check-if-a-list-is-empty). – zondo

Verwandte Themen