Betrachten Sie die folgende Struktur angezeigt -Efficient Weise oberes Dreieck Teil-Matrix als Liste in Python
68 69 70 71 72 *
73 74 75 76 * 77
78 79 80 * 81 82
83 84 * 85 86 87
88 * 89 90 91 92
* 93 94 95 96 97
Ich habe zu erzeugen, eine Liste der oberen Hälfte dh
[68, 69, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80, 83, 84, 88]
Die Struktur ist einfach Zur Erläuterung sind nur zwei Werte gegeben, Start und Länge, wie im obigen Fall start=68
und length = 5
.
Hier ist mein Code, um die Liste zu erzeugen -
start = 68
length = 5
ls = []
for i in range(length):
for j in range(length-i):
ls.append(start)
start = start+1
start = start+i
print(ls)
Gibt es eine effizientere Art und Weise, das gleiche zu erreichen?
Es ist viel schneller als mein Code. Funktioniert gut in meinem Anwendungsfall, aber es gibt Speicherfehler für große Längen wie 99999. Es wäre interessant zu wissen, wie Sie das angehen werden. –
Wenn 'length = 99999', erzeugen Sie eine Liste mit 5 Milliarden Ganzzahlen. In der Praxis müssten Sie diese Liste wahrscheinlich gar nicht erstellen. Sie könnten stattdessen einfach eine Funktion schreiben, um zu bestimmen, ob eine Zahl "x", für einen gegebenen "Start" und "Länge", im Satz wäre. – danyamachine
@ShivendraSingh Das ist viel zu groß ein Anwendungsfall für diesen Code. Betrachten Sie verteiltes Computing oder etwas Ähnliches. –