#python #list #dictionary
#python #Список #словарь
Вопрос:
I have List of dictionaries:
[{
'Make_Name': 'HONDA',
'Model_Name': 'Accord'},
{
'Make_Name': 'HONDA',
'Model_Name': 'Civic'},
....................
{
'Make_Name': 'HONDA',
'Model_Name': 'Pilot'},
Как проверить, есть ли в этом списке определенное имя_модели.
Согласие —> Верно
ajejhc—>False
Комментарии:
1. вы можете использовать цикл for
Ответ №1:
предполагая, что вы сохраняете нужное имя, как car_model
вы можете это сделать:
print(car_model in [v['Model_Name'] for v in list_of_dicts])
>>> True # or False
существует лучший вариант, который также является более производительным, поскольку он позволяет избежать итерации при выполнении одного условия..
any(car_model == v['Model_Name'] for v in list_of_dicts)
>>> True # or False
обратите внимание, что я удалил [
]
и теперь это генератор, поэтому мы избегаем создания всего списка..
Ответ №2:
Вы можете использовать цикл for с методом dict().values(), как показано ниже.
a_list = [{
'Make_Name': 'HONDA',
'Model_Name': 'Accord'},
{
'Make_Name': 'HONDA',
'Model_Name': 'Civic'},
{
'Make_Name': 'Accord',
'Model_Name': 'Pilot'}]
for dic in a_list:
print('Accord' == dic['Model_Name'])
#or
#return 'Accord' == dic['Model_Name']
Комментарии:
1. Это также будет печатать True, если «Accord» — это Make_Name
2. О, моя ошибка. Я исправлю это. Спасибо, что упомянули об этом
3. вместо
in
do==
, потому что это больше не список, он допускает такие значения, как'Acc'
…4. Вы правы, теперь это строка. Но как это влияет на конечный результат?
5. Хорошо, я понял, строка также является последовательностью. Я понял. большое вам спасибо. Узнал кое-что в today