我能想到的一个小片段是:
>>> 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 的切片表示法。
将其打包成一个函数以供使用:
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]}