To check if the value of the 'word' key corresponds to 'value2':
palavra1.get('palavra') == 'valor2' # True
This prevents you from having a KeyError
for accessing a key that does not exist.
Knowing this, you can loop it through your list and find a valid result:
palavra1 = {'palavra': 'valor1'}
palavra2 = {'palavra': 'valor2'}
palavras = [palavra1, palavra2]
for indice, palavra in enumerate(palavras):
if palavra.get('palavra') == 'valor2':
break
print('Indice:', indice) # 1
print('Palavra:', palavra) # {'palavra': 'valor2'}
You can also do the same with a generating expression:
palavra1 = {'palavra': 'valor1'}
palavra2 = {'palavra': 'valor2'}
palavras = [palavra1, palavra2]
indice, palavra = next((i, p) for i, p in enumerate(palavras) if p.get('palavra') == 'valor2')
print('Indice:', indice) # 1
print('Palavra:', palavra) # {'palavra': 'valor2'}