I have problem with 4 list each one got 4 number:
P1= [3,1,3,4]
P2= [5,4,3,7]
P3= [7,4,8,1]
P4= [10,3,2,1]
I need to get the biggest number in combinational way like: Pair of 2: p1p2, p1p3, p1p4, p2p3, p2p4, p3p4
Pairs of 3: p1p2p3, p1p2p4, p1p3p4, p2p3p4
Pairs of 4: p1p2p3p4
The result for:
p1p2= [5,4,3,7]
p1p3= [7,4,8,4]
p1p4= [10,3,3,4] ……
I wrote this program and I store it in a matrix instead of a list. ‘ n= int (input(“Enter the matrix size:”))
matrix=[] for i in range(n): #loop for rows c=[] for j in range(n):# loop for columns j=int(input("enter the value of P["+str(i)+"]"+"["+str(j)+"]")) c.append(j) print() # to make a line between the entries matrix.append(c) # store the matrix c in the new empty one (matrix) for i in range(n): for j in range(n): print(matrix[i][j], end="") print() ############################################## #compar row by row element wise 2 terms m2t=[] for i in range(n-1): for j in range(n): if(matrix[i][j]>=matrix[i+1][j]): m2t.append(matrix[i][j]) else: m2t.append(matrix[i+1][j]) print(m2t,"#1") # check if it get here or not print() #printing the matrix of the 2 terms result for a in range(n-1): for b in range(n): print(m2t, end="") print()
Is there a better way to do it?
Advertisement
Answer
There is at least one more way. Wait for more elegant solutions.
from itertools import combinations P1= [3,1,3,4] P2= [5,4,3,7] P3= [7,4,8,1] P4= [10,3,2,1] Full_List = [P1, P2, P3, P4] for r in range(2,5,1): Combinations = combinations(Full_List, r) print("Finding maximum for a combination size of %d"%r) for eachCombination in Combinations: print("Finding combination for tuples ", *eachCombination) print(list(map(max,zip(*eachCombination)))) print("Done") print() print()
Gives the following output.
Finding maximum for a combination size of 2 Finding combination for tuples [3, 1, 3, 4] [5, 4, 3, 7] [5, 4, 3, 7] Done Finding combination for tuples [3, 1, 3, 4] [7, 4, 8, 1] [7, 4, 8, 4] Done Finding combination for tuples [3, 1, 3, 4] [10, 3, 2, 1] [10, 3, 3, 4] Done Finding combination for tuples [5, 4, 3, 7] [7, 4, 8, 1] [7, 4, 8, 7] Done Finding combination for tuples [5, 4, 3, 7] [10, 3, 2, 1] [10, 4, 3, 7] Done Finding combination for tuples [7, 4, 8, 1] [10, 3, 2, 1] [10, 4, 8, 1] Done Finding maximum for a combination size of 3 Finding combination for tuples [3, 1, 3, 4] [5, 4, 3, 7] [7, 4, 8, 1] [7, 4, 8, 7] Done Finding combination for tuples [3, 1, 3, 4] [5, 4, 3, 7] [10, 3, 2, 1] [10, 4, 3, 7] Done Finding combination for tuples [3, 1, 3, 4] [7, 4, 8, 1] [10, 3, 2, 1] [10, 4, 8, 4] Done Finding combination for tuples [5, 4, 3, 7] [7, 4, 8, 1] [10, 3, 2, 1] [10, 4, 8, 7] Done Finding maximum for a combination size of 4 Finding combination for tuples [3, 1, 3, 4] [5, 4, 3, 7] [7, 4, 8, 1] [10, 3, 2, 1] [10, 4, 8, 7] Done