Как бы я перебрал список словарей и применил еще один цикл для каждого элемента в списке? - PullRequest
0 голосов
/ 16 января 2019

У меня есть следующий список словарей, которые должны быть в этом формате:

incident keywords = [{'INC000007581874': 'ccd browser'},
                     {'INC000007581947': 'CATIA'},
                     {'INC000007582037': 'Catia'}]

Мне нужно применить функцию поиска к каждой из этих статей словаря в этом списке.

Я думал, что цикл for - это путь, но я не знаю, как его реализовать.Я также думаю, что удаление 'query =' ccd browser '' для применения ко всем значениям в словарях может быть способом сделать это, но я не уверен, как это сделать.

Так что через каждыйцикл, он будет использовать 'ccd browser', затем он будет использовать 'CATIA' и т. д. для всех словарей в списке, как бы длинен этот список.

def look_up(id,keywords):

    # Ignores case
    keywords = keywords.lower()
    for item in incident_keywords:
        # if any value contains s
        if any([keywords in v.lower() for v in item.values()]):
            # spit out the item — this is a generator function
            yield item

Функция look_up () ищетсовпадения слов.

def search():

    query = 'ccd browser'

    print(' ')

    choices = []
    id = []

    # iterate over at most 50 first results (can be changed)
    for result in itertools.islice(look_up(id,query), 50):
        id.append(list(result.keys()))
        choices.append(list(result.values()))

    output = process.extract(query,choices,limit=20)

    # Tuple comprehension to remove strings from tuple pairings
    removed = [tuple(j for j in i if isinstance(j, int)) for i in output]

    print('')

    zipped = [{"Links:" : [list(zip(id, removed))]}]

    pprint.pprint(list(zip(incident_keywords_2, zipped)))

Функция поиска () выполняет поиск, но не применяет это к каждой записи в списке словарей.

В настоящее время я могу сделать это для первой записив списке словарей для вывода:

[({'INC000007581874': 'ccd browser'}},
  {'Links:': [[(['INC000007581874'], (100,))]]})]

Но мне нужна помощь, чтобы применить этот процесс к каждой записи в списке словарей, чтобы получить вывод, аналогичный приведенному ниже, применительно ко всем записям в пределахсписок словарей:

[({'INC000007581874': 'ccd browser'}},
  {'Links:': [[(['INC000007581874'], (100,))]]})]

[({'INC000007581947': 'CATIA'}},
  {'Links:': [[(['INC000007581947': 'CATIA'], (100,))]], 
              [(['INC000007582037': 'Catia'], (100,))]})]

[({'INC000007582037': 'Catia'}},
  {'Links:': [[(['INC000007582037': 'Catia'], (100,))]], 
              [(['INC000007581947': 'CATIA'], (100,))]})]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...