Python - Identifizieren, eine negative Zahl in einer Liste
Ich brauche Hilfe dabei ein Programm, das eingehen sollen, zehn zahlen und Rückkehr mir die Anzahl der negativen ganzen zahlen, die ich getippt.
Beispiel:
wenn ich geben:
1,2,-3,3,-7,5,4,-1,4,5
Programm zurückkehren sollte mich 3
.
Ich nicht wirklich eine Ahnung, also bitte geben Sie mir eine hand 🙂
PS. Sorry für mein schlechtes Englisch, ich hoffe, Sie verstehen,
- Haben Sie versucht, noch nichts? Wenn ja, was haben Sie versucht?
- Diese Frage wurde gebannt: meta.stackexchange.com/a/172760/182887
InformationsquelleAutor Michael | 2013-04-13
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brechen Sie Ihr problem unten. Finden Sie einen Weg, um zu überprüfen, ob eine Zahl negativ ist?
Nun, wir haben viele zahlen, so dass wir Schleife über Sie:
Also was wollen wir tun? Sie zählen. Also machen wir das so:
Mehr optimal, kann dies ganz einfach mit einem generator-Ausdruck und die
sum()
built-in:Dies ist die pythonic Weg, es zu tun.
any
ist klarer alssum
.any
zurückkehren würdeTrue
oderFalse
, die nicht die gewünschte Antwortnumbers = [1, 2, -3, 3, -7, 5, 4, -1, 4, 5] sum(number < 0 for number in numbers)
Das Ergebnis ist 3.Oder verwenden Sie die - filter auf "filter" aus dem negativen.
total = len(filter(lambda x: x < 0, my_list))
lambda
undfilter()
zusammen ist langsamer und weniger lesbar als ein generator-Ausdruck.filter
dauertlambda
. Ich möchte nur einen funktionalen Ansatz :). Ich Stimme mit Ihnen 100%. Ich auch +1 Ihre Antwort.filter
nimmt eine Funktion zu erstellen, mitlambda
ist nur in einigen Fällen sinnvoll. Ich war nur kommentieren, um zu sagen, dass dies ist in der Regel ein schlechter Weg, um diese Aufgabe zu erfüllen.lamda
s, aber Sie haben gewann eine große Anhängerschaft. Ich versuche Sie zu vermeiden, Wann immer möglich.filter
Aufbau einerlist
die unnötig Speicherplatz und auch bedeutet, dass Sie müssen hinzufügen eines umschließenden Aufruflist(...)
unter python 3len(list(filter(lambda x: x < 0, my_list))