Использование агрегатной функции для фильтрации выходных данных

#python

#python

Вопрос:

У меня есть функция, которая возвращает список строк, которые сравниваются друг с другом, и оценку для каждого наблюдения. Я пытаюсь отфильтровать выходные данные по баллам, которые больше или равны 80. Когда я применил .фильтр возвращал список значений true или false, когда я хотел получить список строк со счетом 80 или более.

 #Assign your list1
Test_addrs = my_list1
#Assign your List2 and build the nested loop
target_addr = my_list2
for addr in Test_addrs:
    for target in target_addr:
        distance = string_match(target, addr, ratio_calc = True)
        #write results to a txt file
        mylist.append(f'{target}, {addr}, {distance}')
  

Комментарии:

1. Я не понимаю, какое отношение приведенный вами код имеет к тексту. Нет функции, нет оценки и нет фильтра.

2. Итак, у вас есть два списка: список строк и список оценок?

3. @mkrieger1 Функция гигантская, поэтому для простоты я ее опустил. Я показываю код, в котором я вызываю функцию, и добавляю его в список. Я отредактирую сообщение, хотя, если это поможет с контекстом.

4. @Austin Это правильно

Ответ №1:

Использовать zip() со списком-понимание:

 strings_lst = ['a', 's', 'd', 'f', 'g']
scores_lst = [21, 24, 90, 54, 109]

print([x for x, y in zip(strings_lst, scores_lst) if y >= 80])
# ['d', 'g']
  

Комментарии:

1. Идеальный. Это именно то, над чем я работал и пытался разобраться.

2. В следующий раз предоставьте нам входные данные, ожидаемый результат и правильный код, применимый к тому, что вы объясняете. Это позволяет избежать дальнейших запросов в комментариях.