私が思いついた小さなスニペットは次のとおりです。
>>> testDict = {'a':[0,1,1,0,0,1],'b':[1,1,1,0,0,0]}
>>> referenceDict = {(0, 1):2, (0, 0):0, (1, 0):1, (1, 1):3}
>>> for key, value in testDict.items():
finalList = [referenceDict[elem] for elem in zip(value[::2], value[1::2])]
testDict[key] = finalList
>>> testDict
{'a': [2, 1, 2], 'b': [3, 1, 0]}
value[::2]
はPython の Slice Notationです。
これを使用する関数にパックします:
def testFunction(inputDict):
referenceDict = {(0, 1):2, (0, 0):0, (1, 0):1, (1, 1):3}
for key, value in inputDict.items():
finalList = [referenceDict[elem] for elem in zip(value[::2], value[1::2])]
inputDict[key] = finalList
return inputDict
例 -
>>> testFunction({'a':[0,1,1,0,0,1],'b':[1,1,1,0,0,0]})
{'a': [2, 1, 2], 'b': [3, 1, 0]}