2016-06-14 13 views
-1

Ich habe zwei Listen. Ein Listenname "Datum" enthält Daten, die sich auf das Geburtsdatum der Personen beziehen.Zugriff auf zwei Listenelemente, um Ergebnisse zu erhalten

data = [ datetime.datetime(1958, 3, 15, 0, 0), datetime.datetime(1958, 9, 15, 0, 0), datetime.datetime(1930, 10, 23, 0, 0), datetime.datetime(1928, 9, 15, 0, 0), datetime.datetime(1928, 1, 23, 0, 0), datetime.datetime(1925, 11, 15, 0, 0), datetime.datetime(1962, 7, 20, 0, 0),datetime.datetime(1960, 12, 14, 0, 0), datetime.datetime(1960, 5, 10, 0, 0),datetime.datetime(1963, 9, 7, 0, 0), datetime.datetime(1956, 3, 10, 0, 0), datetime.datetime(1955, 2, 15, 0, 0),datetime.datetime(1958, 11, 14, 0, 0),datetime.datetime(1956, 8, 24, 0, 0),datetime.datetime(1990, 4, 30, 0, 0)] 

Jetzt nächste Liste enthält Heiratsdaten.

marriage = [ datetime.datetime(1985, 5, 14, 0, 0),datetime.datetime(1945, 6, 15, 0, 0), datetime.datetime(1938, 6, 11, 0, 0), datetime.datetime(1995, 4, 5, 0, 0), datetime.datetime(1987, 2, 26, 0, 0), datetime.datetime(1983, 12, 13, 0, 0), datetime.datetime(1980, 9, 16, 0, 0), datetime.datetime(2011, 6, 19, 0, 0)] 

Jedes Datum aus der "Ehe" -Liste bezieht sich auf 2 Daten von "Datum" -Liste. Nun mag ich zwei Termine aus Terminliste ein Datum aus der Ehe Liste vergleichen, so dass i "Geburtsdatum weniger ist als die Ehe drucken.

Wie diese Aufgabe Schleife erreichen kann? Verwechseln mit diesem.

Bitte beachten Sie, dass ich import datetime verwendet habe, um den Datumsvergleich durchzuführen

+3

Wow, dieser Code ist nicht lesbar. Erwägen Sie, mehr als eine Zeile zu verwenden. – melpomene

+0

Woher wissen Sie, welche Daten Sie vergleichen möchten? – JETM

+0

'import datetime, re' macht dasselbe in einer Zeile –

Antwort

0
for i in range(len(data)): 
    if data[i] < marriage[i]: 
    print "birthdate is lt marriage date" 
    else: 
    print "birthdate is gt or eq to marriage date" 

Ich bin nicht sicher, was Sie versuchen hier zu tun ... Auch brauchen Sie nicht erneut für Datum Vergleich können Sie normale < > == <= >= Operatoren verwenden.

Dies auch wie ein Job klingt für einen Hash (Wörterbuch) ...

marriage = { 
    'marriage1' : { 
     '1' : <birthday>, 
     '2' : <birthday>, 
     'marriage-date' : <marriage-date> 
    }, 
    'marriage2' : { 
     '1' : <birthday>, 
     '2' : <birthday>, 
     'marriage-date' : <marriage-date> 
    } 
} 

Ein Hash (Wörterbuch) werden Vergleiche viel einfacher, mit Listen machen, die die gleiche Anzahl von Werten nicht enthalten.

+0

Ich möchte 2 Daten von der Datumsliste mit einem Datum aus der Ehe zu vergleichen. Ihre Methode funktioniert nicht so wie ich will –

+0

Was ist das Ergebnis, das Sie von diesem Vergleich wollen? Möchten Sie sehen, ob die Geburtsdaten früher im Jahr sind? –

+0

Ich möchte das Datum der Hochzeit vergleichen ist größer als das Geburtsdatum –

-1

Dies setzt voraus, dass die Heirats- und Geburtsdaten in der gleichen Reihenfolge sind (dh die ersten beiden Geburtsdaten entsprechen dem ersten und dem nächsten Heiratsdatum) 2 Geburtsdaten entsprechen dem Datum der zweiten Hochzeit)

for i in range(len(marriage)): 
    if marriage[i] > data[i*2] and marriage[i] > data[(i*2)+1]: 
     print "Both birthdates less than marriage data" 

Ich glaube, meine Annahme ist richtig, denn es gibt doppelt so viele Einträge in der Datenliste wie in der Eheliste.

Verwandte Themen