Как проверить, есть ли значение?

#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