Как удалить пустые ключи в словаре Python

В этом уроке Python я объясню, как удалить пустые ключи в словаре Python. Сначала мы определим, что такое пустой ключ в словаре Python и каковы различные методы удаления пустых ключей из словаря Python.

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

Словарь — это встроенный тип данных в Python . Он определяется путем заключения пар ключ-значение в фигурные скобки {}. Например:

capital_cities = {
    "California": "Sacramento",
    "Texas": "Austin",
    "Florida": "Tallahassee"
}

Что означает «пустой ключ или значение» в словаре Python

Прежде чем мы углубимся в процесс, важно определить, что означает «пустой ключ или пустое значение» в данном контексте:

  • Пустой ключ: ключ, представляющий собой пустую строку ""или любой другой тип данных, который считается «ложным» в словаре Python.
  • Пустое значение: обычно это значение None, пустая строка, список, набор или другой словарь.

Например, возьмем несколько штатов США и сохраним их столицы в словаре, но некоторые из них мы не знаем. поэтому словарь Python будет выглядеть так:

capital_cities = {
    "California": "",
    "": "Austin",
    "Florida": None,
    "New York": [],
    "Alaska": {}
}

print(capital_cities.keys())
print(capital_cities.values())

удалить пустые ключи в словаре Python

Здесь «Калифорния», «Флорида», «Нью-Йорк» и «Аляска» считаются пустыми ключами или пустыми значениями в словаре Python.

Удалить пустые ключи в методах словаря Python

Существует четыре различных метода удаления ключей с пустыми значениями в Python dict:

  • Использование словарного понимания
  • Использование конструктора dict с итератором
  • Использование цикла for
  • Использование функции filter()

Давайте рассмотрим их поочередно на наглядных примерах:

Метод 1: Python удаляет пустые ключи из dict, используя понимание словаря

Понимание словаря в Python предлагает краткий способ создания словарей путем перебора существующего словаря и фильтрации нежелательных ключей (пустые ключи или ключи с пустыми значениями) в процессе. Он идеально подходит для удаления нескольких ключей из dict Python в зависимости от условия.

Синтаксис понимания словаря в Python :

{k: v for k, v in original_dict.items() if condition}

Например, представьте, что у нас есть словарь Python, который связывает команды НФЛ с их домашними стадионами. Однако из-за неполного сбора данных некоторые команды или стадионы могут отсутствовать или быть пустыми. Чтобы отправить отчет, нам нужно удалить пустые ключи из словаря Python.

nfl_stadiums = {
    "San Francisco 49ers": "Levi's Stadium",
    "Dallas Cowboys": "",
    "Green Bay Packers": "Lambeau Field",
    "": "Mercedes-Benz Stadium",
    "Arizona Cardinals": None
}

nfl_stadiums = {team: stadium for team, stadium in nfl_stadiums.items() if team and stadium}
print(nfl_stadiums)

Результат:

{'San Francisco 49ers': "Levi's Stadium", 'Green Bay Packers': 'Lambeau Field'}

удалить пустые значения из словаря Python с пониманием словаря

Здесь мы вместе удалили пустой ключ и ключ с пустыми значениями. Но мы можем сделать это и отдельно:

Удаление пустых ключей:

nfl_stadiums = {team: stadium for team, stadium in nfl_stadiums.items() if team}

Это удалит только пустой ключ ""в этом примере Python.

Удаление ключей с пустыми значениями:

nfl_stadiums = {team: stadium for team, stadium in nfl_stadiums.items() if stadium}

Это удалит ключи с пустыми значениями «Даллас Ковбойз» и «Аризона Кардиналс» в этом примере Python.

Метод 2: Python dict удаляет ключи с пустыми значениями, используя конструктор dict внутри итератора.

Конструктор dict — это еще один способ создания словарей Python. Его можно комбинировать с пониманием списка для фильтрации пустых ключей/значений.

Например, возможно, мы работаем со словарем Python, который сопоставляет штаты США с их сокращениями. Из-за некоторых несоответствий данных некоторые штаты или сокращения пусты или отсутствуют. Чтобы очистить словарь Python, мы удалим ключи с пустыми значениями.

state_abbreviations = {
    "California": "CA",
    "Texas": "",
    "Florida": "FL",
    "": "AZ",
    "Nevada": None
}

state_abbreviations = dict((state, abbrev) for state, abbrev in state_abbreviations.items() if state and abbrev)
print(state_abbreviations)

Словарь Python удаляет пустые значения с помощью конструктора dict

Таким образом, конструктор dict очищает словарь Python с пустыми ключами.

Метод-3: Python dict удаляет пустые значения с помощью цикла for

Цикл For вручную перебирает и отфильтровывает ключи с пустыми значениями в словаре Python:

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

car_brands_origin = {
    "Ford": "Dearborn",
    "Chevrolet": "",
    "Tesla": "Palo Alto",
    "": "Detroit",
    "Jeep": None
}

filtered_dict = {}
for brand, city in car_brands_origin.items():
    if brand and city:
        filtered_dict[brand] = city
print(filtered_dict)

Python удаляет пустые значения из dict, используя цикл for

Таким образом, цикл for помогает удалить пустые ключи dict Python.

Метод 4: удалить пустые ключи из словаря Python из функции filter().

Функция filter() позволяет обрабатывать каждую пару ключ-значение в словаре Python, чтобы определить, следует ли ее сохранять. Это полезно для быстрого удаления пустых или нежелательных записей на основе определенного условия.

Например, представьте, что мы создаем словарь Python для американских музыкантов и их самых известных песен. Из-за различных источников данных у нас могут оказаться пустые записи.

Здесь мы будем использовать функцию filter() с лямбда-функцией в качестве условного оператора Python для фильтрации нужных ключей и создания нового словаря Python с помощью конструктора dict.

musicians_songs = {
    "Elvis Presley": "Jailhouse Rock",
    "Madonna": "",
    "Michael Jackson": "Billie Jean",
    "": "Born in the U.S.A.",
    "Whitney Houston": None
}

musicians_songs = dict(filter(lambda item: item[0] and item[1], musicians_songs.items()))
print(musicians_songs)

Python dict удалить ничего с помощью функции filter()

Таким образом, в Python dict удаляются значения «none» или пустой ключ.

Заключение

Здесь мы увидели, как удалить пустые ключи в словаре Python с помощью четырех различных методов Python, таких как словарное понимание, конструктор dict, цикл for и функция filter(), используя наглядные примеры.

Очистка словарей Python путем удаления пустых ключей или значений — это простой процесс в Python. С помощью обсуждаемых методов мы можем гарантировать, что наши данные остаются аккуратными и значимыми.