To check if the key value 'word' corresponds to 'value2':
palavra1.get('palavra') == 'valor2' # True
This prevents you from having one KeyError
by accessing a key that does not exist.
Knowing this, you can make a loop that iterates under your list and for when you 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'}