Using
Edit: added 2nd and 3rd sorting, not sure if 2nd and 3rd sorting key is how you want it
sorted
with a key function to obtain the eq valueEdit: added 2nd and 3rd sorting, not sure if 2nd and 3rd sorting key is how you want it
values = {'permit tcp host 192.168.23.6 host 192.168.2.31 eq 445', 'permit tcp host 192.168.23.5 host 192.168.2.31 eq 135', 'permit udp host 192.168.23.2 host 192.168.2.32 eq 53', 'permit tcp host 192.168.23.5 host 192.168.2.26 eq 49749', 'permit tcp host 192.168.23.4 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.2 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.9 host 192.168.2.31 eq 445', 'permit udp host 192.168.23.5 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.7 host 192.168.2.31 eq 53', 'permit tcp host 192.168.23.5 host 192.168.2.32 eq 389', 'permit tcp host 192.168.23.9 host 192.168.2.26 eq 49749', 'permit tcp host 192.168.23.7 host 192.168.2.32 eq 49670', 'permit udp host 192.168.23.5 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.7 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.9 host 192.168.2.32 eq 53', 'permit tcp host 192.168.23.6 host 192.168.2.23 eq 80', 'permit udp host 192.168.23.3 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.5 host 192.168.2.32 eq 389', 'permit tcp host 192.168.23.9 host 192.168.2.31 eq 135', 'permit udp host 192.168.23.5 host 192.168.2.32 eq 123', 'permit udp host 192.168.23.1 host 192.168.2.32 eq 53', 'permit tcp host 192.168.23.1 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.8 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.1 host 192.168.2.32 eq 135', 'permit udp host 192.168.23.2 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.6 host 192.168.2.31 eq 389', 'permit tcp host 192.168.23.3 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.2 host 192.168.2.28 eq 445', 'permit tcp host 192.168.23.7 host 192.168.2.23 eq 8530', 'permit tcp host 192.168.23.4 host 192.168.2.32 eq 88', 'permit udp host 192.168.23.9 host 192.168.2.31 eq 389', 'permit tcp host 192.168.23.5 host 192.168.2.31 eq 88', 'permit udp host 192.168.23.8 host 192.168.2.31 eq 389', 'permit udp host 192.168.23.8 host 192.168.2.32 eq 389', 'permit tcp host 192.168.23.2 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.6 host 192.168.2.31 eq 389', 'permit udp host 192.168.23.1 host 192.168.2.32 eq 389', 'permit tcp host 192.168.23.2 host 192.168.2.26 eq 49749', 'permit tcp host 192.168.23.5 host 192.168.2.32 eq 135', 'permit tcp host 192.168.23.5 host 192.168.2.23 eq 8530', 'permit tcp host 192.168.23.1 host 192.168.2.32 eq 445', 'permit udp host 192.168.23.8 host 192.168.2.31 eq 53', 'permit tcp host 192.168.23.1 host 192.168.2.23 eq 8530', 'permit tcp host 192.168.23.3 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.9 host 192.168.2.31 eq 389', 'permit udp host 192.168.23.9 host 192.168.2.31 eq 53', 'permit tcp host 192.168.23.6 host 192.168.2.31 eq 135', 'permit tcp host 192.168.23.2 host 192.168.2.23 eq 8530', 'permit udp host 192.168.23.6 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.4 host 192.168.2.32 eq 389', 'permit udp host 192.168.23.1 host 192.168.2.31 eq 53', 'permit tcp host 192.168.23.7 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.4 host 192.168.2.31 eq 135', 'permit tcp host 192.168.23.5 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.1 host 192.168.2.31 eq 445', 'permit tcp host 192.168.23.5 host 192.168.2.31 eq 389', 'permit udp host 192.168.23.4 host 192.168.2.31 eq 53', 'permit tcp host 192.168.23.5 host 192.168.2.28 eq 445', 'permit udp host 192.168.23.3 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.4 host 192.168.2.32 eq 53', 'permit tcp host 192.168.23.5 host 192.168.2.32 eq 49670', 'permit tcp host 192.168.23.8 host 192.168.2.31 eq 389', 'permit tcp host 192.168.23.8 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.8 host 192.168.2.31 eq 49667', 'permit tcp host 192.168.23.4 host 192.168.2.31 eq 445', 'permit udp host 192.168.23.8 host 192.168.2.32 eq 53', 'permit tcp host 192.168.23.5 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.4 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.5 host 192.168.2.28 eq 135', 'permit tcp host 192.168.23.4 host 192.168.2.31 eq 49667', 'permit tcp host 192.168.23.7 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.1 host 192.168.2.32 eq 49670', 'permit tcp host 192.168.23.9 host 192.168.2.23 eq 80', 'permit udp host 192.168.23.6 host 192.168.2.32 eq 53'} def sort_key(item): rest, eq = item.split('eq') _, ip1, ip2 = rest.split('host') ip1 = tuple(int(i) for i in ip1.split('.')) ip2 = tuple(int(i) for i in ip2.split('.')) return int(eq), ip2, ip1 print(sort_key('permit udp host 192.168.23.6 host 192.168.2.32 eq 53')) sorted_values = sorted(values, key=sort_key) print(sorted_values)
Output:(53, (192, 168, 2, 32), (192, 168, 23, 6))
['permit udp host 192.168.23.1 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.2 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.3 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.4 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.5 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.6 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.7 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.8 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.9 host 192.168.2.31 eq 53', 'permit udp host 192.168.23.1 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.2 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.3 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.4 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.5 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.6 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.7 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.8 host 192.168.2.32 eq 53', 'permit udp host 192.168.23.9 host 192.168.2.32 eq 53', 'permit tcp host 192.168.23.1 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.2 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.3 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.4 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.5 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.6 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.7 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.8 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.9 host 192.168.2.23 eq 80', 'permit tcp host 192.168.23.5 host 192.168.2.31 eq 88', 'permit tcp host 192.168.23.4 host 192.168.2.32 eq 88', 'permit udp host 192.168.23.5 host 192.168.2.32 eq 123', 'permit tcp host 192.168.23.5 host 192.168.2.28 eq 135', 'permit tcp host 192.168.23.4 host 192.168.2.31 eq 135', 'permit tcp host 192.168.23.5 host 192.168.2.31 eq 135', 'permit tcp host 192.168.23.6 host 192.168.2.31 eq 135', 'permit tcp host 192.168.23.9 host 192.168.2.31 eq 135', 'permit tcp host 192.168.23.1 host 192.168.2.32 eq 135', 'permit tcp host 192.168.23.5 host 192.168.2.32 eq 135', 'permit tcp host 192.168.23.5 host 192.168.2.31 eq 389', 'permit udp host 192.168.23.6 host 192.168.2.31 eq 389', 'permit tcp host 192.168.23.6 host 192.168.2.31 eq 389', 'permit udp host 192.168.23.8 host 192.168.2.31 eq 389', 'permit tcp host 192.168.23.8 host 192.168.2.31 eq 389', 'permit udp host 192.168.23.9 host 192.168.2.31 eq 389', 'permit tcp host 192.168.23.9 host 192.168.2.31 eq 389', 'permit udp host 192.168.23.1 host 192.168.2.32 eq 389', 'permit udp host 192.168.23.4 host 192.168.2.32 eq 389', 'permit tcp host 192.168.23.5 host 192.168.2.32 eq 389', 'permit udp host 192.168.23.5 host 192.168.2.32 eq 389', 'permit udp host 192.168.23.8 host 192.168.2.32 eq 389', 'permit tcp host 192.168.23.2 host 192.168.2.28 eq 445', 'permit tcp host 192.168.23.5 host 192.168.2.28 eq 445', 'permit tcp host 192.168.23.1 host 192.168.2.31 eq 445', 'permit tcp host 192.168.23.4 host 192.168.2.31 eq 445', 'permit tcp host 192.168.23.6 host 192.168.2.31 eq 445', 'permit tcp host 192.168.23.9 host 192.168.2.31 eq 445', 'permit tcp host 192.168.23.1 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.2 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.3 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.4 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.5 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.7 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.8 host 192.168.2.32 eq 445', 'permit tcp host 192.168.23.1 host 192.168.2.23 eq 8530', 'permit tcp host 192.168.23.2 host 192.168.2.23 eq 8530', 'permit tcp host 192.168.23.5 host 192.168.2.23 eq 8530', 'permit tcp host 192.168.23.7 host 192.168.2.23 eq 8530', 'permit tcp host 192.168.23.4 host 192.168.2.31 eq 49667', 'permit tcp host 192.168.23.8 host 192.168.2.31 eq 49667', 'permit tcp host 192.168.23.1 host 192.168.2.32 eq 49670', 'permit tcp host 192.168.23.5 host 192.168.2.32 eq 49670', 'permit tcp host 192.168.23.7 host 192.168.2.32 eq 49670', 'permit tcp host 192.168.23.2 host 192.168.2.26 eq 49749', 'permit tcp host 192.168.23.5 host 192.168.2.26 eq 49749', 'permit tcp host 192.168.23.9 host 192.168.2.26 eq 49749']