Рубрики
Без рубрики

Как отфильтровать список списков в Python?

Краткий ответ: Чтобы отфильтровать список списков для условия на внутренних списках, используйте оператор понимания списка [X для X в списке, если условие (x)] и замените условие (x) с условием фильтрации, которое возвращает TRUE, чтобы включить внутреннее Список x и false в противном случае. https://youtu.be/3ng4tlkqzf8 Списки относятся к наиболее важным структурам данных в … Как фильтровать список списков в Python? Подробнее “

Автор оригинала: Chris.

Краткий ответ: Чтобы отфильтровать список списков для условия на внутренних списках, используйте оператор понимания списка [X для X в списке, если условие (X)] а также заменять Состояние (x) с вашим условием фильтрации Это возвращает Правда включить внутренний список x , а также Ложь иначе.

Списки относятся к наиболее важным структурам данных в Python – каждый мастер-кодер знает их наизусть! Удивительно, что даже промежуточные кодеры не знают лучших способов фильтрации списка – один список списков в Python. В этом руководстве показано, как сделать последнее!

Проблема : Скажем, у вас есть список списков. Вы хотите отфильтровать список списков, чтобы оставаться только те внутренние списки, которые удовлетворяют определенному условию. Условие – это функция внутреннего списка, такая как средняя или сумма элементов внутреннего списка.

Пример : Учитывая следующий список списков с еженедельными измерениями температуры в неделю и один внутренний список в неделю.

# Measurements of a temperature sensor (7 per week)
temperature = [[10, 8, 9, 12, 13, 7, 8], # week 1
               [9, 9, 5, 6, 6, 9, 11], # week 2
               [10, 8, 8, 5, 6, 3, 1]] # week 3

Как отфильтровать более холодные недели со средним значением температуры <8? Это выпуск вы желаете:

print(cold_weeks)
# [[9, 9, 5, 6, 6, 9, 11], [10, 8, 8, 5, 6, 3, 1]]

Существует два семантически эквивалентных методах для достижения этого: понимание списка и функции карты (). Давайте рассмотрим обе варианты дальше.

Если вы короткие вовремя, вы также можете получить быстрый обзор, играя с кодом в вашем веб-браузере – я объясню код после этого.

Метод 1: Понимание списка

Самый питонический способ фильтрации списка – на мой взгляд – это заявление о понимании списка [X для X в списке, если состояние] . Вы можете заменить Состояние С любой функцией х Вы хотели бы использовать в качестве состояния фильтрации. Только элементы, которые находятся в Список и встретить Состояние включены в недавно созданный список.

Решение : Вот как вы можете решить вышеуказанную проблему для фильтрации списка списков на основе функции внутренних списков:

# Measurements of a temperature sensor (7 per week)
temperature = [[10, 8, 9, 12, 13, 7, 8], # week 1
               [9, 9, 5, 6, 6, 9, 11], # week 2
               [10, 8, 8, 5, 6, 3, 1]] # week 3


# How to filter weeks with average temperature <8?

# Method 1: List Comprehension
cold_weeks = [x for x in temperature if sum(x)/len(x)<8]
print(cold_weeks)
# [[9, 9, 5, 6, 6, 9, 11], [10, 8, 8, 5, 6, 3, 1]]

Второй и третий список в Список списков соответствовать условию средней температуры менее 8 градусов. Таким образом, те, кто включены в переменную Cold_weeks Отказ

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

Это самый эффективный способ фильтрации списка, и это также самый питон один. Если вы посмотрите на альтернативы, продолжайте чтение.

Статьи по Теме:

  • Список понимания – список списков Python
  • Фильтр () VS Появление списка
  • Вложенный список понимание
  • Окончательное руководство по спискам Python
  • Список понимания

Способ 2: Функция Filter ()

Фильтр (функция, утечка) Функция принимает функцию в качестве входа, которая принимает аргумент (элемент списка) и возвращает логическое значение, которое указывает, должен ли этот элемент списка передавать фильтр. Все элементы, которые проходят фильтр, возвращаются как новый ИТЕРИТЕЛЬНО объект (объект фильтра).

Вы можете использовать лямбда Заявление о функциях для создания функции вправо, где вы передаете его как аргумент. Синтаксис функции лямбда – лямбда х: выражение И это означает, что вы используете х в качестве входного аргумента, и вы возвращаете выражение в результате (что может или не может использовать х решить об возврате). Для получения дополнительной информации см. Мой Подробная статья в блоге о функции лямбда Отказ

# Measurements of a temperature sensor (7 per week)
temperature = [[10, 8, 9, 12, 13, 7, 8], # week 1
               [9, 9, 5, 6, 6, 9, 11], # week 2
               [10, 8, 8, 5, 6, 3, 1]] # week 3


# How to filter weeks with average temperature <8?

# Method 2: Map()
cold_weeks = list(filter(lambda x: sum(x) / len(x) < 8, temperature))
print(cold_weeks)
# [[9, 9, 5, 6, 6, 9, 11], [10, 8, 8, 5, 6, 3, 1]]

Опять же, второй и третий список в Список списков соответствовать условию средней температуры менее 8 градусов. Таким образом, те, кто включены в переменную Cold_weeks Отказ

Фильтр () Функция возвращает объект фильтра, который ИТЕРИТЕЛЬНО Отказ Чтобы преобразовать его в список, вы используете Список (...) конструктор.

Играть с этим кодом, нажав «Далее» в инструменте интерактивного визуализации кода:

Статьи по Теме:

  • Как фильтровать Использование функции лямбда
  • Который быстрее – список пониманий или карта ()?
  • Как фильтровать с помощью функции лямбда?
  • Учебное пособие на программирование Python

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/how-to-filter-a-list-of-lists-in-python/”