2016-05-03 4 views
1

So habe ich kleines Problem. Ich habe 2 Standorte und Sporttag Ergebnisse:Range-Funktion, um Ergebnisse zu zählen

location1 = [401, 604, 547, 700, 722, 845, 621, 490, 800, 700] 
location2 = [900, 0, 333, 803, 838, 400, 467, 488, 432, 700] 

und ich habe zu Ergebnissen, die Quere zu kommen, dass nur die besten dargestellt ist. Auch am Ende muss es eine Summe dieser Ergebnisse geben. Endergebnis sollte wie folgt aussehen:

[900, 604, 547, 803, 845, 621, 490, 800, 700] 
Sum: 7148 

Alles, was ich Standort zu erhalten mit dem besten Gesamtnote und die Summe, nicht die besten Ergebnisse aus jedem. Hat jemand Ideen?

+0

[ 'zip'] (https://docs.python.org/2/library/functions.html#zip) sowohl die Orte auflistet zusammen und finden die [' max'] (https : //docs.python.org/2/library/functions.html#max) jedes Paares entweder mit Listenverständnis oder ['map'] (https://docs.python.org/2/library/functions.html #map), dann ['sum'] (https://docs.python.org/2/library/functions.html#sum) alle zusammen. –

Antwort

3
best_results = [max(x,y) for x,y in zip(location1, location2)] 
2

Try this:

max_results = [max(item) for item in zip(location1,location2)] 
total = sum(max_results) 

Oder nur für den Sport:

max_results = [max(location1[index],location2[index]) for index in range(0, len(location1))] 
1

Dies wird auch funktionieren.

best_results = list(map(lambda x: max(location1[x], location2[x]), range(len(location1)))) 
total = sum(best_results) 
+1

"Das ** wird auch funktionieren" wäre genauer. –

0
results = [max(x,y) for x,y in zip(location1, location2)] 
total = sum(results) 
+0

Während dieser Code die Frage beantworten kann, würde die Bereitstellung eines zusätzlichen Kontexts bezüglich des Warum und/oder wie er die Frage beantwortet, seinen langfristigen Wert signifikant verbessern. Bitte [bearbeiten] Sie Ihre Antwort, um eine Erklärung hinzuzufügen. – CodeMouse92

Verwandte Themen