Ключ поиска в указанном словаре, который содержит частичный запрос - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу вывести все элементы словаря в списке, которые содержат частичный запрос по одному из его ключей.

Учитывая этот вопрос , я хочу добиться чего-то подобного, но изследующий список:

people = [
{"name": "Pamela", "age": 9}
{"name": "Tom", "age": 10},
{"name": "Mark", "age": 5},
{"name": "Pam", "age": 7}
]

В поисках "Pam" я хочу получить обе эти записи:

{"name": "Pamela", "age": 9},
{"name": "Pam", "age": 7}

Поскольку я хотел бы искать разные ключи в словаре,исходя из предпочтений пользователя, я думаю, что это лучшее решение, которое я найду в упомянутой теме:

def search(db, key, value):
    for item in db:
        if value in item[key]: # This is the line i'm having trouble with
            return item

Однако команда print(search(people, 'name', 'Pam')) будет выводить только {"name": "Pam", "age": 7}

1 Ответ

0 голосов
/ 07 ноября 2019

Извините, мне кажется, я нашел решение. Функция действительно получала оба результата, но return item возвращал только последний элемент, просмотренный циклом for, и, как и ожидалось, оператор print только показал это. Вот код, который я использую, если у кого-то возникла такая же проблема:

def search(db, key, value):
    result = []
    for item in db:
        if value in item[key]:
            result.append(item)

Это просто вопрос создания пустого списка и добавления к нему пропускаемых элементов. Теперь я чувствую себя немного глупым и гордым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...