You generally use
.get with a default
Return the value for key if key is in the dictionary, else default. If default is not given, it defaults to None, so that this method never raises a KeyError.
So when you use
get the loop would look like this:
for item in newS: functionField = functionTable.get(item, "00") registerField = registerTable.get(item, "00") print(functionField + registerField)
1000 0000 0000
If you want to do the explicit check if the key is in the dictionary you have to check if the key is in the dictionary (without indexing!).
if item in functionTable: # checks if "item" is a *key* in the dict "functionTable" functionField = functionTable[item] # store the *value* for the *key* "item" else: functionField = "00"
get method makes the code shorter and faster, so I wouldn’t actually use the latter approach. It was just to point out why your code failed.