mapfile = {
1879048192: 0,
1879048193: 0,
1879048194: 0,
1879048195: 0,
1879048196: 4,
1879048197: 3,
1879048198: 2,
1879048199: 17,
1879048200: 0,
1879048201: 1,
1879048202: 0,
1879048203: 0,
1879048204: 4,
# intentionally missing byte
1879048206: 2,
1879048207: 1,
1879048208: 0 # single byte cannot make up a dword
}
_buf = {}
for x in (x for x in mapfile.keys() if 0==x%4):
try:
s = "0x{0:02x}{1:02x}{2:02x}{3:02x}".format(mapfile[x+3], mapfile[x+2],
mapfile[x+1], mapfile[x+0])
print("offset ", x, " value ", s)
_buf[x] = int(s, 16)
except KeyError as e:
print("bad key ", e)
print("_buf is ", _buf)
Поскольку я использую словарь, я получаю ошибку KeyError. План состоит в том, чтобы сделать словарь defaultdict(int), чтобы в словаре по умолчанию он дополнялся нулями при наличии KeyError. Но я не нашел никакого решения. Как мне преобразовать словарь в словарь по умолчанию?
_buf = {} for x in (x for x in mapfile.keys() if 0==x%4): try: s = "0x{0:02x}{1:02x}{2:02x}{3:02x}".format(mapfile[x+3], mapfile[x+2], mapfile[x+1], mapfile[x+0]) print("offset ", x, " value ", s) _buf[x] = int(s, 16) except KeyError as e: print("bad key ", e)
print("_buf is ", _buf) [/code] Поскольку я использую словарь, я получаю ошибку KeyError. План состоит в том, чтобы сделать словарь defaultdict(int), чтобы в словаре по умолчанию он дополнялся нулями при наличии KeyError. Но я не нашел никакого решения. Как мне преобразовать словарь в словарь по умолчанию?