Я работаю над кодом Python для обновления списка словарей, если в списке словарей есть входные данные. Если ввод не существует в списке словарей, он должен вывести «значение не существует во всем списке» или выполнить какую-либо другую операцию. Ниже приведен код, который я написал
a = [{'main_color': 'red', 'second_color': 'blue'},
{'main_color': 'yellow', 'second_color': 'green'},
{'main_color': 'blue', 'second_color': 'blue1'}]
conType = input('Enter main color: ')
color=input('Enter secondary color :')
conType1= input('Enter another main color: ')
color1=input('Enter another secondary color: ')
valueDict={}
if conType:
valueDict[conType]=color
if conType1:
valueDict[conType1]=color1
print(valueDict)
for d in a:
for i,j in valueDict.items():
if d['main_color'] == i:
print('matched')
d['second_color'] = j
break
else:
print('no value')
print(a)
Ниже приведен вывод, когда я пытался выполнить вышеуказанный код
Enter main color: red
Enter secondary color :black
Enter another main color: yellow
Enter another secondary color: white
{'red': 'black', 'yellow': 'white'}
matched
matched
no value
[{'main_color': 'red', 'second_color': 'black'}, {'main_color': 'yellow', 'second_color': 'white'}, {'main_color': 'blue', 'second_color': 'blue1'}]
Проблема здесь в том, что «нет значения» печатается.
В моем случае никакое значение не должно быть напечатано вообще.
Я прошел через Поиск отчетов массива "не найден", хотя он найден и https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops
Я не уверен, почему печатается «нет значения». Я ищу способ избежать выполнения блока else, если все входы присутствуют в списке словарей.
Пожалуйста, помогите.