Converting nested dict into a single unchanging unique number

Question:

I’m working on a minimax algorithm project and I am trying to find a way to save board values in a text file so they don’t need to be calculated over and over again each time the program is tested. I have the board stored as a nested dictionary.

rows = {
    4:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    3:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    2:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    1:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    }

I tried doing this, which gives the desired result but is not at all optimized and I’m sure there is a way to do this better.

 rows = {
    4:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    3:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    2:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    1:{1:0,2:0,3:0,4:0,5:0,6:0,7:0,8:0},
    }

e = []
for key in rows:
    e.append(list(rows[key].values()))
e=str(e)
e=e.replace ("[",""); e=e.replace ("]","")
e=e.replace (" ","")
e=e.replace (",","")
print(e)
Asked By: llamassssssss

||

Answers:

You could make use of a str.join(), map is used to convert integers to strings:

res = ''.join(''.join(map(str, r.values())) for r in rows.values())
print(res)

Out:

00000000000000000000000000000000
Answered By: Maurice Meyer
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.