Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Как обработать список словарей в Python

Есть список словарей типа:

1234567891011121314151617
 [ 
    { 
        'title': 'some value', 
        'value': 123.4, 
        'id': 'an id' 
    }, 
    { 
        'title': 'another title', 
        'value': 567.8, 
        'id': 'another id' 
    }, 
    { 
        'title': 'last title', 
        'value': 901.2, 
        'id': 'yet another id' 
    } 
] 

Необходимо получить словарь, в котором к примеру value = 123.4
Как это сделать?

По дате
По рейтингу
Аватар пользователя
Новичок

Список как список. Просто по индексу взять.

123456789101112131415161718
 A = [  
    {  
        'title': 'some value',  
        'value': 123.4,  
        'id': 'an id'  
    },  
    {  
        'title': 'another title',  
        'value': 567.8,  
        'id': 'another id'  
    },  
    {  
        'title': 'last title',  
        'value': 901.2,  
        'id': 'yet another id'  
    }  
] 
print(A[0]) 

Или ты хочешь найти по значению? Ну циклом просто пройдись и возьми

Аватар пользователя
Просветленный

Вы можете использовать генератор словарей для фильтрации списка словарей и создания нового словаря, содержащего только элементы, удовлетворяющие условию. Вот пример решения вашей задачи:

scss
Copy code
data = [ { 'title': 'some value', 'value': 123.4, 'id': 'an id' }, { 'title': 'another title', 'value': 567.8, 'id': 'another id' }, { 'title': 'last title', 'value': 901.2, 'id': 'yet another id' } ]

result = next(item for item in data if item['value'] == 123.4)
print(result)
Вывод:

python
Copy code
{'title': 'some value', 'value': 123.4, 'id': 'an id'}
В этом примере мы используем генератор словарей для фильтрации списка словарей data. Мы проверяем значение каждого элемента item['value'] и выбираем первый элемент, удовлетворяющий условию, с помощью функции next().