Gegeben zwei Listen hat:Finden Sie das Jahr, die höchste Anzahl von aktiven Bindungen
- Ausgabe Jahr von Anleihen
- Fälligkeitsjahr Bindung
Etwas wie:
issue_year = [1934, 1932, 1945, 1946, ...]
mature_years = [1967, 1937, 1957, 1998, ...]
Bei diesem Beispiel hat die erste Anleihe das Emissionsjahr 1934 und das Fälligkeitsjahr 1967, während die zweite Anleihe das Emissionsjahr 1932 hat und Fälligkeitsjahr von 1937 und so weiter.
Das Problem, das ich versuche zu lösen, ist das Jahr zu finden, das die höchste Anzahl aktiver Bindungen hat.
Hier ist was ich bisher habe. Dies ist das Jahr, in dem alle Anleihen aktiv sind.
L1=[1936,1934,1937]
L2=[1940,1938,1940]
ctr=0
for i in range(len(L1)):
j=i
L3=list(range(L1[i],L2[j]))
if ctr==0:
tempnew=L3
else:
tempnew=list(set(L3) & set(tempnew))
ctr = ctr+1
Hier tempnew
ist der Schnittpunkt aller aktiven Jahren für alle Anleihen. Es kann jedoch vorkommen, dass die Schnittmenge aller aktiven Jahre leer ist. Zum Beispiel, wenn Bond 1 von 1932 bis 1945 aktiv war und Bond 2 von 1947 bis 1960 aktiv war.
Kann jemand helfen?
Was hast du bisher versucht? –
@Kahirul Danke für die Antwort. Hier ist mein Code, der für alle Anleihen den Schnittpunkt aller aktiven Jahre bildet. "L1 = [1936,1934,1937] L2 = [1940,1938,1940] ctr = 0 für i im Bereich (len (L1)): j = i L3 = Liste (Bereich (L1 [i ], L2 [j])) #print L3 wenn ctr == 0: tempnew = L3 anderes: tempnew = list (set (L3) & set (tempnew)) # temp = tempnew ctr = ctr + 1 ' – jayant