2017-02-12 7 views
0

Angenommen, ich habe eine Liste:Handhabung Listen in Python

a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 

Ich mag ein Programm schreiben, das die Elemente der Liste all ausdruckt, die weniger als 10 Eigentlich seine recht einfach ich dieses Programm bekam aber ich muss es in einer Zeile machen und ich habe keine Ahnung, wie ich das machen soll. Brauche Hilfe dabei.

+0

Warum Sie ** ** Notwendigkeit dies in einer einzigen Zeile zu tun? –

+0

Haben Sie etwas versucht? –

+0

@MAdeelKhalid hast du in den Kommentaren der Antwort gesehen habe ich Pbd die gleiche Sache, die ich versucht habe. –

Antwort

3
print [x for x in a if x < 10] 

einen weiteren Blick auf lambda functions nehmen, ich finde, dass das ist, was Sie suchen.

+0

Ja, ich habe es jetzt funktioniert es absolut gut, aber ich möchte wissen, dass ich das tun kann "für x in einem && wenn x <10". –

+0

Sie können den Python-Interpreter zum Testen verwenden. Ich tat dies und es gab mir einen Fehler, der sagt, dass Bool nicht iterierbar ist, wahrscheinlich weil 'x in a && x <10' bool ist und' for' nicht darüber iterieren kann – Pbd

+1

Oh, ich habe es jetzt verstanden. –

0

Also, um etwas aus einer Liste zu drucken, die weniger als 10 In der gleichen Zeile ist, müssen Sie zunächst eine Liste erstellen:

numbers = [] 

Schleife durch jedes einzelne Element der Liste

for i in a: 

Und dann müssen Sie eine If-Anweisung zu überprüfen, ob das Element weniger als 10

if i < 10: 

Fügen Sie die Nummer auf der Liste

 numbers.append(str(i)) 

die Ergebnisse Join zusammen:

result = " ".join(numbers) 

Und schließlich Drucken Sie es aus

print(result) 

Und wenn man alles zusammen kombinieren, das ist Was Sie bekommen sollten:

a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 
numbers = [] 
for i in a: 
    if i < 10: 
     numbers.append(str(i)) 
result = " ".join(numbers) 
print(result) 

sollte das Ergebnis sein:

1 1 2 3 5 8 
+2

hast du die Frage – Pbd

+0

@Ashiro gelesen Ich habe eine bessere Lösung als das, mein Problem war, dass ich es nur in einer einzigen Zeile tun möchte. –

+0

Oh, ich dachte, Sie wollten das Ergebnis in einer einzigen Zeile, Wenn Sie das Programm in einer Zeile möchten, könnten Sie entweder Lambda oder Exec() verwenden – Ashiro