2016-08-08 53 views
0

Ziemlich neu hier Python,Python Tupel if-Anweisungen

Ich habe eine Python-Tupel

reportTuple = (('Keith', 'Saturday', 10), ('Jane', 'Monday', 12)) 

und ich möchte den Namen und die Nummer drucken, aber nur dann, wenn der Wert Samstag. (Druckelemente 0, 2 aber nur wenn Elemente 1 value == Saturday.)

Irgendwelche Ideen, wie man schreibt, um eine if-Anweisung zu schreiben, um sie zu ergreifen?

Antwort

1

Schleife durch das Array, um den Wert des zentralen Elements überprüft:

for i in reportTuple: # Loop through each element of reportTuple 
    if i[1] == "Saturday": # Is the day Saturday? 
     print(i[0]) # Print name 
     print(i[2]) # Print number 

May I als k, was das Problem hier war? War es die for-Schleife?

0

Ich bin eine sehr lässige Python Benutzer so an Sicherheit grenzender Wahrscheinlichkeit, dass eine magische Art und Weise ist diese elegant weit mehr zu tun als ich, aber ich dies gerade versucht, und es hat funktioniert:

reportTuple = (('Keith', 'Saturday', 10), ('Jane', 'Monday', 12)) 
for report in reportTuple: 
    if report[1] == 'Saturday': 
     print(report[0], report[2]) 

druckt

Keith 10 
0

Aktualisieren erste Liste mit Junapa der Änderung:

Sie können mit einer Liste Verständnis zu tun.

print(*("{}: {}".format(name,number) for (name, day, number) in reportTuple if day == 'Saturday')) 

wird auszudrucken

Keith 10 

Wenn Sie die Ergebnisse der if-Anweisung in einer Liste speichern wollten, dann können Sie

['{} {}'.format(name, number) for (name, day, number) in reportTuple if day == 'Saturday'] 

tun, die Sie zurückkehren

['Keith 10'] 
+1

Nun, es ist hier, wenn er es will. Wenn nicht, gibt es andere Antworten hier, die er benutzen kann. Ich mochte die Listenergänzungen sehr, als ich anfing, python zu lernen, also dachte ich mir, ich werde eine Listenverständnisantwort für ihn oder für den zufälligen Passanten hinzufügen. – Aur

+1

Drucken von innerhalb eines Verständnisses ist schlechte Form. Verständnis sind funktionale Konstrukte - Menschen erwarten keine Nebenwirkungen in ihnen. Machen Sie etwas wie folgt: 'print (* (" {}: {} ". Format (Name, Nummer) für (Name, Tag, Nummer) in reportTuple if day == 'Saturday'))' –