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

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

Теперь давайте проясним, что именно я имею в виду, говоря о пустых ключах. В контексте словарей в Python пустой ключ — это ключ, который не имеет связанного с ним значения. Например, словарь может содержать ключ «age» без значения, то есть {‘age»: None}. В этом случае сам ключ не является пустым, но его значение отсутствует.

Возможно, вам кажется, что в этом случае ключ должен быть пустым, например, {«»: 21}. Однако, используя мою терминологию, можно сказать, что пустые ключи — это ключи, которые не содержат никакой информации.

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

Содержание

Как удалить пустые ключи из Dict

Создайте словарь user_data, как показано ниже.

user_data = {
 "name": "Caleb",
 "age": 20,
 "email": "[email protected]",
 "preferences": [],
  "alternate_email":None
}

Обратите внимание на словарь, в котором есть два ключа без предпочтений и alter_email. По какой-то причине эти ключи больше не требуют словаря user_data.

Чтобы удалить из словаря user_data пустые ключи, нужно определить, какие из них не содержат значений. Для этого создайте пустой список с именем key_no_value, в который будут помещаться такие ключи. Затем запустите цикл for, чтобы перебрать все ключи в словаре и найти те, которые не имеют значения.

key_no_value = []

for key, value in user_data.items():
  if value in [None, " ", {}, []]:
    key_no_value.append(key)

print("These are keys withou value", key_no_value)

В коде выше мы видим, что создаётся пустой список с именем `key_no_value` (строка `key_no_value = []`). Затем запускается цикл, который проходит по всем парам ключ-значение в словаре `user_data`. Для этого используется метод `items()`.

Следующий оператор, `if value in [None, «, «», {}, []]`, проверяет, является ли текущее значение пустым (None, пустая строка, пустой словарь или пустой список). Если это так, то соответствующий ключ добавляется в список `key_no_value`, который создаётся ранее. Для этого используется метод `add()`.

Таким образом, список `key_no_value` содержит все ключи, которые имеют пустые значения (None, пустые строки, пустые словари или пустые списки).

Наша задача — удалить эти ключи. Для этого мы снова запускаем цикл for, чтобы пройтись по списку `key_no_value` и удалить пустые ключи.

for key in key_no_value:
  del user_data[key]

print('After removing empty keys:', user_data)

Python удалить пустые ключи из Dict

Посмотрите на вывод: он удаляет все пустые ключи из словаря user_data.

Здесь эта строка кода «для ключа в key_no_value: del user_data[key]» берет каждый ключ из списка «key_not_value», а затем удаляет эти пары «ключ-значение», используя del user_data[key].

Таким образом, он возвращает окончательный словарь user_data без пустых ключей в виде {‘name’: ‘Caleb’, ‘age’: 20, ’email’: ‘[email protected]’}.

Используя словарное понимание

Понимание словаря — это более простой способ создания нового словаря на основе существующего с использованием выражения, за которым следует цикл for, заключённый в фигурные скобки {}.

Чтобы удалить из словаря пустые ключи, возьмите те же user_data, которые мы использовали в предыдущем разделе.

user_data = {
 "name": "Caleb",
 "age": 20,
 "email": "[email protected]",
 "preferences": [],
  "alternate_email":None
}
cleaned_user_data = {key:value for key ,value in user_data.items() if value not in [None, "", {}, []]}

print(cleaned_user_data)

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

Давайте разберемся с частью кода {ключ: значение для ключа, значение в user_data.items(), если значение не в [None, «», {}, []]}, эта часть кода имеет три вещи, во-первых, это «ключ: value», второй — это цикл «для ключа, значения в user_data.items()», а третий — «если значение не в [None, «», {}, []]».

Начните с цикла «для ключа, значения в user_data.items()». Вы уже знакомы с этой строкой кода, которая позволяет получить доступ к каждой паре ключ-значение словаря user_data с помощью метода items().

Далее, ‘if значение не в [None, ” “, {}, []]’ проверяет, что каждое значение отсутствует в списке [None, ” “, {}, []] или значение каждого ключа не равно значениям в [Нет, ” “, {}, []].

Если значение не совпадает ни с одним из пустых значений, например, в списке [None, «, {}, []], то соответствующий ключ с этим значением включается в новый словарь clean_user_data.

В результате в словарь clean_user_data включен только ключ с некоторым значением {‘name’: ‘Caleb’, ‘age’: 20, ’email’: ‘[email protected]’}.

С использованием цикла For

Вы можете использовать один цикл for, чтобы удалить ключи с пустыми значениями, при этом сохранив ключи со значениями в новом словаре.

Например, давайте возьмем те же «user_data» и используем их в цикле for, как показано в коде ниже.

user_data = {
 "name": "Caleb",
 "age": 20,
 "email": "[email protected]",
 "preferences": [],
  "alternate_email":None
}

dict_without_empty_keys = {}

for key, value in user_data.items():
  if key and value:
    dict_without_empty_keys[key]=value

print("These are keys without value", dict_without_empty_keys)

С использованием цикла For

Посмотрите, как это реализовано с помощью единственного цикла for. Из словаря user_data были удалены ключи с пустыми значениями.

Понимание этой части кода: «если ключ и значение: dict_without_empty_keys[key] = value». Здесь происходит проверка, существуют ли ключ и значение. Если они существуют, то значение этого ключа добавляется в словарь dict_without_empty_keys.

В условном операторе «если ключ и значение» оба условия должны быть истинными. Если ключ существует, а значение отсутствует, то значение этого ключа не добавляется в словарь. И наоборот, если значение существует, а ключ отсутствует, то ключ не добавляется в словарь.

Добавить комментарий