Поиск значения словаря внутри списка - PullRequest
0 голосов
/ 19 марта 2020

Мой метод ищет указанное значение c в списке словарей. Я хотел бы потратить это. Он должен возвращать не только найденный словарь, но и индекс словаря.

Что я должен изменить?

метод поиска

def search_user(self, user_id, data):
        return [element for element in data if element['id'] == user_id]

входные данные

[
    {
        "id": "12",
        "other": "stuff"
    },
    {
        "id": "987654321",
        "other": "stuff"
    }
]

текущее возвращаемое значение

# dictionary
{
        "id": "987654321",
        "other": "stuff"
}

целевое возвращаемое значение

# index of the dictionary, dictionary
[
    1,
    {
        "id": "987654321",
        "other": "stuff"
    }

]

1 Ответ

1 голос
/ 19 марта 2020

Вы можете использовать enumerate:

def search_user(self, user_id, data):
    return [(lv, element) for lv, element in enumerate(data) if element['id'] == user_id]

Это вернет список кортежей, где первый элемент каждого кортежа является индексом, а второй словарь.

...