Seite 1 von 1

Python Codes zu kombinieren

Verfasst: Donnerstag 1. Oktober 2020, 14:02
von tristanfermat
Hallo,
Ich möchte diese beiden Codes kombinieren. Aber ich konnte nicht. In der ersten sollte es Listen erstellen und in der zweiten sollte es zeigen, welche Liste den Maximalwert hat. Können Sie diese beiden in einem Code schreiben? Danke.

Code: Alles auswählen

import itertools
stuff = [30,30,40,40,45,50,60,80,90,100]
for L in range(0, len(stuff)+1):
    
   for subset in itertools.combinations(stuff, L):
        print(subset)
        

Code: Alles auswählen

import functools

test_matrix = ([1,2,3,4,5], [3,6,9], [12,10,1])
res = functools.reduce(lambda i, j: i if 200 < sum(j) 
       else j, test_matrix)
                

print ("Maximum sum sublist is : " + str(res)) 

# printing the original matrix 
print ("The original matrix is : " + str(test_matrix)) 

Re: Python Codes zu kombinieren

Verfasst: Montag 5. Oktober 2020, 06:57
von Sirius3
Du mußt im ersten Teil einfach eine Liste erzeugen, statt die Listen mit print auszugeben. Die kannst Du dann im zweiten Teil statt test_matrix benutzt.
Der Reduce-Ausdruck sieht äußerst kompliziert aus. Sowas läßt sich meist lesbarer durch eine for-Schleife ersetzen:

Code: Alles auswählen

test_matrix = ([1,2,3,4,5], [3,6,9], [12,10,1])
for res in reversed(test_matrix):
    if sum(res) <= 200:
        break
Der Text in der Ausgabe passt dann nicht ganz zum Code. Also entweder ist der Code falsch, oder die Beschreibung.