-2

How can i sort this to get the expected sequence?

My program:

product_pairs = [[(1, 2), (1, 3), (1, 6), (1, 8), (1, 9), (2, 3), (2, 6), (2, 8), (2, 9), (3, 6), (3, 8), (3, 9), (6, 8), (6, 9), (8, 9)], [(0, 5), (0, 9), (5, 9)], [(0, 9)], [(0, 4), (0, 5), (0, 7), (0, 9), (4, 5), (4, 7), (4, 9), (5, 7), (5, 9), (7, 9)], [(3, 8)], [(1, 3), (1, 6), (1, 8), (3, 6), (3, 8), (6, 8)], [(0, 5), (0, 9), (5, 9)], [(3, 8)], [(0, 4), (0, 5), (0, 7), (4, 5), (4, 7), (5, 7)], [(0, 1), (0, 2), (0, 3), (0, 6), (1, 2), (1, 3), (1, 6), (2, 3), (2, 6), (3, 6)]]

emptydic={}
cooccurences={}
for i in product_pairs:
    for y in i:
        if y not in emptydic:
            emptydic[y]=1
        else:
            emptydic[y]+=1

print(emptydic)

my result:

{(1, 2): 2, (1, 3): 3, (1, 6): 3, (1, 8): 2, (1, 9): 1, (2, 3): 2, (2, 6): 2, (2, 8): 1, (2, 9): 1, (3, 6): 3, (3, 8): 4, (3, 9): 1, (6, 8): 2, (6, 9): 1, (8, 9): 1, (0, 5): 4, (0, 9): 4, (5, 9): 3, (0, 4): 2, (0, 7): 2, (4, 5): 2, (4, 7): 2, (4, 9): 1, (5, 7): 2, (7, 9): 1, (0, 1): 1, (0, 2): 1, (0, 3): 1, (0, 6): 1}

expected sequence:

{(0, 1): 1, (0, 2): 1, (0, 3): 1, (0, 4): 2, (0, 5): 4, (0, 6): 1, (0, 7): 2, (0, 9): 4, 
 (1, 2): 2, (1, 3): 3, (1, 6): 3, (1, 8): 2, (1, 9): 1,
 (2, 3): 2, (2, 6): 2, (2, 8): 1, (2, 9): 1, 
 (3, 6): 3, (3, 8): 4, (3, 9): 1,
 (4, 5): 2, (4, 7): 2, (4, 9): 1, 
 (5, 7): 2, (5, 9): 3, 
 (6, 8): 2, (6, 9): 1,  
 (7, 9): 1, 
 (8, 9): 1}

Thank you!

SuperStormer
  • 4,997
  • 5
  • 25
  • 35

1 Answers1

1

For Python 3.7 or higher:

dict(sorted(emptydic.items()))

{(0, 1): 1, (0, 2): 1, (0, 3): 1, (0, 4): 2, (0, 5): 4, (0, 6): 1, (0, 7): 2, (0, 9): 4, (1, 2): 2, (1, 3): 3, (1, 6): 3, (1, 8): 2, (1, 9): 1, (2, 3): 2, (2, 6): 2, (2, 8): 1, (2, 9): 1, (3, 6): 3, (3, 8): 4, (3, 9): 1, (4, 5): 2, (4, 7): 2, (4, 9): 1, (5, 7): 2, (5, 9): 3, (6, 8): 2, (6, 9): 1, (7, 9): 1, (8, 9): 1}
kohrhea
  • 159
  • 7