Разное

Проверить наличие ключа в словаре python: Python | Проверьте, существует ли данный ключ в словаре

Содержание

Python | Проверьте, существует ли данный ключ в словаре

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

Примеры:

Input : {'a': 100, 'b':200, 'c':300}, key = b
Output : Present, value = 200

Input : {'x': 25, 'y':18, 'z':45}, key = w
Output : Not present

Подход № 1. Использование встроенных keys() метода keys()

Метод keys() возвращает список всех доступных ключей в словаре. С помощью встроенного метода keys() используйте оператор if и оператор «in», чтобы проверить, присутствует ли ключ в словаре или нет.

  

def checkKey(dict, key):

      

    if key in dict.keys():

        print("Present, ", end =" ")

        print("value =", dict[key])

    else:

        print("Not present")

  

dict = {'a': 100, 'b':200, 'c':300}

  

key = 'b'

checkKey(dict, key)

  

key = 'w'

checkKey(dict, key)

Выход:

Present, value = 200
Not present

Подход № 2. Использование if и in

Этот метод просто использует оператор if чтобы проверить, существует ли данный ключ в словаре.

  

def checkKey(dict, key):

      

    if key in dict:

        print("Present, ", end =" ")

        print("value =", dict[key])

    else:

        print("Not present")

  

dict = {'a': 100, 'b':200, 'c':300}

  

key = 'b'

checkKey(dict, key)

  

key = 'w'

checkKey(dict, key)

Выход:

Present, value = 200
Not present

Подход № 3. Использование has_key() метода has_key()

has_key() возвращает true, если в словаре имеется заданный ключ, в противном случае он возвращает false. С помощью has_key() метода has_key() используйте оператор if, чтобы проверить, присутствует ли ключ в словаре или нет.

Примечание. has_keys() был удален из версии Python3. Поэтому его можно использовать только в Python2.

  

def checkKey(dict, key):

      

    if dict.has_key(key):

        print "Present, value =", dict[key]

    else:

        print "Not present"

  

dict = {'a': 100, 'b':200, 'c':300}

key = 'b'

checkKey(dict, key)

  

key = 'w'

checkKey(dict, key)

Выход:

Present, value = 200
Not present

Рекомендуемые посты:

  • Python | Проверьте, существует ли кортеж в качестве словарного ключа
  • Python | Проверьте, существует ли ключ в словаре ключей кортежа
  • Python — Проверьте, существует ли файл или каталог
  • Python: проверьте, существует ли файл или каталог
  • Python | Проверьте, имеет ли ключ значение Non-None в словаре
  • Python | Способы проверить, существует ли элемент в списке
  • Python | Проверьте, существует ли элемент в списке списков
  • Python | Проверить на None значения в данном словаре
  • Python | Проверьте, является ли один словарь подмножеством другого
  • Python — Проверьте, все ли значения K в словаре
  • Python | Проверьте, все ли значения 0 в словаре
  • Python | Проверьте, пустой ли словарь
  • Словарь Python, установить и счетчик, чтобы проверить, могут ли частоты стать одинаковыми
  • Python | Проверьте, существует ли данное множество ключей в словаре
  • Словарь Python | Проверьте, являются ли двоичные представления двух чисел анаграммой

Python | Проверьте, существует ли данный ключ в словаре

0.00 (0%) 0 votes

Основы работы со словарями(dict) python: get(), keys(), update(), items()

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

Создание словаря

Для создания словаря в Python необходимо передать последовательность элементов внутри фигурных скобок {}, разделив их запятыми (,). Каждый элемент имеет ключ и значение, выраженное парой «ключ: значение».

Значения могут быть представлять собой любые типы данных и повторяться, но ключи обязаны быть уникальными.

Следующие примеры показывают, как создавать словари Python:

Создание пустого словаря:

dict_sample = {}

Cловарь, где ключи являются целыми числами:

dict_sample = {1: 'mango', 2: 'pawpaw'}

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

dict_sample = {'fruit': 'mango', 1: [4, 6, 8]}

Можно также создать словарь, явно вызвав метод dict():

dict_sample = dict({1:'mango', 2:'pawpaw'})
Подписывайтесь на телеграм каналы

Словарь можно создать с помощью последовательности, как в примере внизу:

dict_sample = dict([(1,'mango'), (2,'pawpaw')])

Словари могут быть вложенными. Это значит, что можно создавать словари внутри существующего словаря. Например:

dict_sample = {
1: {'student1': 'Nicholas', 'student2': 'John', 'student3': 'Mercy'}, 
2: {'course1': 'Computer Science', 'course2': 'Mathematics', 'course3': 'Accounting'}
}

Чтобы вывести содержимое словаря, можно использовать функцию print() и передать название словаря в качестве аргумента. Например:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
print(dict_sample)

Вывод:

{'Company': 'Toyota', 'model': 'Premio', 'year': 2012}

Доступ к элементами

Чтобы получить доступ к элементам словаря, нужно передать ключ в квадратных скобках []. Например:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
x = dict_sample["model"] 
print(x)

Вывод:

Premio

Был создан словарь dict_sample. Затем была создана переменная x. Ее значение — это значение ключа ["model"] из словаря.

Вот другой пример:

dict = {'Name': 'Mercy', 'Age': 23, 'Course': 'Accounting'} 
print("Student Name:", dict['Name']) 
print("Course:", dict['Course']) 
print("Age:", dict['Age'])

Вывод:

Student Name: Mercy 
Course: Accounting 
Age: 23

Объект словаря также имеет функцию get(), которой можно пользоваться для доступа к элементам словаря. Ее нужно добавлять к словаря через точку и затем передавать название ключа как аргумент функции. Например:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
x = dict_sample.get("model")
print(x)

Вывод:

Premio

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

Добавление элементов

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

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
dict_sample["Capacity"] = "1800CC" 
print(dict_sample)

Вывод:

{'Capacity': '1800CC', 'year': 2012, 'Company': 'Toyota', 'model': 'Premio'}

У нового элемента ключ "Capacity" и значение — "180CC". Он был добавлен в качестве первого элемента словаря.

Вот другой пример. Для начала нужно создать пустой словарь:

MyDictionary = {} 
print("An Empty Dictionary: ") 
print(MyDictionary)

Вывод:

An Empty Dictionary:

Словарь ничего не возвращает, потому что в нем ничего не хранится. Добавим в нему элементы, один за одним:

MyDictionary[0] = 'Apples' 
MyDictionary[2] = 'Mangoes' 
MyDictionary[3] = 20 
print("\n3 elements have been added: ") 
print(MyDictionary)

Вывод:

3 elements have been added: {0: 'Apples', 2: 'Mangoes', 3: 20}

Для добавления элементов были отдельно указаны ключи и соответствующие значения. Например:

MyDictionary[0] = 'Apples'

В этом примере 0 является ключом, а "Apples" — значение.

Можно даже добавить несколько значений для одного ключа. Например:

MyDictionary['Values'] = 1, "Pairs", 4 
print("\n3 elements have been added: ") 
print(MyDictionary)

Вывод:

3 elements have been added: {'Values': (1, 'Pairs', 4)}

В этом примере название ключа — "Value", а все что после знака = — его значения в формате множества (Set).

Помимо добавления новых элементов в словарь, их можно обновлять или изменять. Об этом в следующем разделе.

Обновление элементов

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

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 

dict_sample["year"] = 2014 

print(dict_sample)

Вывод:

{'year': 2014, 'model': 'Premio', 'Company': 'Toyota'}

В этом примере видно, что было обновлено значение ключа "year" с 2012 на 2014.

Удаление элементов

Удалить элемент из словаря можно несколькими способами. В этом разделе они будут рассмотрены по одному:

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

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
}
del dict_sample["year"] 
print(dict_sample)

Вывод:

{'Company': 'Toyota', 'model': 'Premio'}

Вызывается ключевое слово del, а следом за ним — название словаря. В квадратных скобках следом за словарем идет ключ элемента, который требуется удалить. В этом примере это "year". Запись "year" удаляется из словаря.

Другой способ удалить пару ключ-значение — функция pop() с ключом записи в виде аргумента. Например:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
dict_sample.pop("year") 
print(dict_sample)

Вывод:

{'Company': 'Toyota', 'model': 'Premio'}

Функция pop() была вызвана добавлением ее к названию словаря. В этом случае будет удалена запись с ключом "year".

Функция popitem() удаляет последний элемент в словаре. Для нее не нужно указывать конкретный ключ. Примеры:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
dict_sample.popitem() 
print(dict_sample)

Вывод:

{'Company': 'Toyota', 'model': 'Premio'}

Последней записью в словаре была "year". Она пропала из словаря после вызова функции popitem().

Что делать, если нужно удалить целый словарь? Это будет сложно и займет много времени, если пользоваться этими методами к каждому ключу. Вместо этого можно использовать ключевое слово del для целого словаря. Например:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
del dict_sample 
print(dict_sample)

Вывод:

NameError: name 'dict_sample' is not defined

Код вернет ошибку, потому что функция print() пытается получить доступ к словарю, который уже не существует.

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

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
dict_sample.clear() 
print(dict_sample)

Вывод:

{}

Код вернет пустой словарь, поскольку все его элементы уже удалены.

Другие распространенные методы словарей

Метод len()

С помощью этого метода можно посчитать количество элементов в словаре. Например:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
print(len(dict_sample))

Вывод:

3

В этом словаре три записи, поэтому метод вернет 3.

Метод copy()

Этот метод возвращает копию существующего словаря. Например:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
x = dict_sample.copy() 

print(x)

Вывод:

{'Company': 'Toyota', 'year': 2012, 'model': 'Premio'}

Была создана копия словаря dict_sample. Она присвоена переменной x. Если вывести x в консоль, то в ней будут те же элементы, что и в словаре dict_sample.

Это удобно, потому что изменения в скопированном словаре не затрагивают оригинальный словарь.

Метод items()

Этот метод возвращает итерируемый объект. Такой объект содержит пары ключ-значение для словаря по аналогии с кортежами в списке. Метод используется, когда нужно перебрать значения словаря.

Этот метод нужно вызывать вместе со словарем, как в примере ниже:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 

for k, v in dict_sample.items(): 
    print(k, v)

Вывод:

('Company', 'Toyota') 
('model', 'Premio') 
('year', 2012)

Объект, который возвращает items(), можно использовать, чтобы показать изменения в словаре. Вот как это работает.

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 

x = dict_sample.items() 

print(x) 

dict_sample["model"] = "Mark X" 

print(x)

Вывод:

dict_items([('Company', 'Toyota'), ('model', 'Premio'), ('year', 2012)]) 
dict_items([('Company', 'Toyota'), ('model', 'Mark X'), ('year', 2012)])

Вывод демонстрирует, что когда вы меняете значение в словаре, объекты элементов также обновляются.

Метод fromkeys()

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

dictionary.fromkeys(keys, value)

Значение требуемого параметра keys — итерируемые объекты. Оно отвечает за ключи нового словаря. Значение для параметра value указывать необязательно. Оно отвечает за значение по умолчанию для всех ключей. По умолчанию — None.

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

name = ('John', 'Nicholas', 'Mercy') 
age = 25 

dict_sample = dict.fromkeys(name, age) 

print(dict_sample)

Вывод:

{'John': 25, 'Mercy': 25, 'Nicholas': 25}

В коде вверху определены ключи и одно значение. Метод fromkeys() перебирает ключи и объединяет их со значением для создания заполненного словаря.

Значение для параметра keys является обязательным. В следующем примере показано, что происходит, если параметр values не определен:

name = ('John', 'Nicholas', 'Mercy')

dict_sample = dict.fromkeys(name) 

print(dict_sample)

Вывод:

{'John': None, 'Mercy': None, 'Nicholas': None}

Используется значение по умолчанию, None.

Метод setdefault()

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

У метода следующий синтаксис:

dictionary.setdefault(keyname, value)

В этой функции параметр keyname является обязательным. Он обозначает название ключа, значение которого нужно вернуть. Параметр value необязательный. Если в словаре уже есть ключ, параметр не будет иметь никакого эффекта. Если ключ не существует, тогда значение функции станет значением ключа. Значение по умолчанию — None.

Например:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 

x = dict_sample.setdefault("color", "Gray") 
print(x)

Вывод:

Gray

В словаре нет ключа color. Метод setdefault() вставляет этот ключ вместе со значением "Gray".

Следующий пример показывает, как работает метод, если такой ключ уже есть:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
x = dict_sample.setdefault("model", "Allion") 
print(x)

Вывод:

Premio

Значение "Allion" не повлияло на словарь, потому что у ключа уже есть значение.

Метод keys()

Этот метод также возвращает итерируемый объект. Он является списком всех ключей в словаре. Как и метод items(), этот отображает изменения в самом словаре.

Для использования метода нужно всего лишь использовать его с именем словаря, как показано ниже:

dictionary.keys()

Например:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 
x = dict_sample.keys() 

print(x)

Вывод:

dict_keys(['model', 'Company', 'year'])

Часто этот метод используется, чтобы перебрать все ключи в словаре:

dict_sample = {
  "Company": "Toyota", 
  "model": "Premio", 
  "year": 2012 
} 

for k in dict_sample.keys(): 
    print(k)

Вывод:

Company  
model  
year

Выводы

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

как лучше всего проверить наличие нескольких ключей в словаре?

можно использовать set перекрестках:

if not d.viewkeys() & {'amount', 'name'}:
    raise ValueError

в Python 3 это будет:

if not d.keys() & {'amount', 'name'}:
    raise ValueError

, потому что .keys() возвращает представление dict по умолчанию. словарь объекты вида как возвращенный .viewkeys().keys() в Python 3) действуют как наборы, и тестирование пересечений очень эффективно.

демо в Python 2.7:

>>> d = {
...   'name': 'name',
...   'date': 'date',
...   'amount': 'amount',
... }
>>> not d.viewkeys() & {'amount', 'name'}
False
>>> del d['name']
>>> not d.viewkeys() & {'amount', 'name'}
False
>>> del d['amount']
>>> not d.viewkeys() & {'amount', 'name'}
True

обратите внимание, что это проверяет True только если и ключи отсутствуют. Если вам нужен тест если или отсутствует, использовать:

if not d.viewkeys() >= {'amount', 'name'}:
    raise ValueError

который является ложным, только если и ключи присутствуют:

>>> d = {
...   'name': 'name',
...   'date': 'date',
...   'amount': 'amount',
... }
>>> not d.viewkeys() >= {'amount', 'name'}
False
>>> del d['amount']
>>> not d.viewkeys() >= {'amount', 'name'})
True

на строго сравнение (разрешение только два ключа, не больше, не меньше), в Python 2, сравните представление словаря с набором:

if d.viewkeys() != {'amount', 'name'}:
    raise ValueError

(так что в Python 3 это будет if d.keys() != {'amount', 'name'}).

30

автор: Martijn Pieters

Python: устранение ошибки — KeyError: ‘key_name’

Согласно официальной документации Python 3, ошибка KeyError возникает, когда  ключ набора (словаря) не найден в наборе существующих ключей.

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

rana@Brahma: ~$ python3
Python 3.5.2 (default, Jul 10 2019, 11:58:48) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = dict()
>>> a["key1"] = "value1"
>>> print(a["key2"])
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'key2'
>>> 

Доступ к ключам словаря:

Для доступа к ключам словаря мы используем квадратные скобки [ ].

>>> gender = dict()
>>> gender["m"] = "Male"
>>> gender["f"] = "Female"
>>> gender["m"]
'Male'
>>> 

Однако вышеуказанный способ, то есть использование квадратных скобок, имеет один недостаток. Если ключ не существует, мы получаем KeyError.

>>> gender["k"]
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'k'
>>> 

Удаление несуществующего ключа:

>>> del gender["h"]
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'h'
>>> 

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

— Используйте метод get()

Мы можем получить значение ключа из словаря, используя метод get. Если пара ключ-значение не существует для данного ключа в словаре, то возвращается None, иначе возвращается значение, соответствующее этому ключу. Это рекомендуемый способ.

>>> gender.get("m")
'Male'
>>> gender.get("k")
>>> 
>>> print(gender.get("k") is None)
True
>>>

Вы можете передать второй необязательный параметр в вызове get(), который является значением, возвращаемым, если ключ не существует в словаре. Значением по умолчанию этого второго параметра является None.

— проверить наличие ключа

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

gender = dict()
gender["m"] = "Male"
gender["f"] = "Female"

if "k" in gender:
  print("Key k exists in gender")
else:
  print("Key k doesn't exists in gender")
— Используйте try-exc

Если вы не используете или не хотите использовать метод get для доступа к ключам в словаре, используйте блок try-exc.

gender = dict()
gender["m"] = "Male"
gender["f"] = "Female"

try:
  value = gender["k"]
except KeyError:
  print("Key error. Do something else")
except Exception:
  print("Some other error")
— Получить все ключи и перебрать словарь

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

gender = dict()
gender["m"] = "Male"
gender["f"] = "Female"

keys = gender.keys()

for key in keys:
  print(gender[key])
— Или вы можете напрямую перебирать словарь для пар ключ и значение, используя метод items().
gender = dict()
gender["m"] = "Male"
gender["f"] = "Female"

for item in gender.items():
  print(item[0], item[1])

Аналогично, для удаления значения ключа из словаря мы можем использовать метод pop() вместо del.

Однако, в отличие от метода get(), метод pop() выбрасывает keyError, если удаляемый ключ не существует и второй параметр не передается.

Таким образом, чтобы избежать ошибки KeyError в случае удаления ключа, мы должны передать значение по умолчанию, которое будет возвращено, если ключ не найден, в качестве второго параметра для pop()

>>> 
>>> gender.pop("m")
'Male'
>>> gender.keys()
dict_keys(['f'])
>>> gender.pop("k")
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'k'
>>> gender.pop("k", None)
>>> 

Python | Получить ключ от значения в словаре

Давайте посмотрим, как получить ключ по значению в словаре Python.

Метод № 1: Использование list.index ()

Метод index() возвращает индекс соответствующего значения в списке. Ниже описана реализация метода index () для извлечения ключа словаря по значению.

my_dict ={"java":100, "python":112, "c":11}

  

key_list = list(my_dict.keys())

val_list = list(my_dict.values())

  

print(key_list[val_list.index(100)])

print(key_list[val_list.index(112)])

  

print(list(my_dict.keys())[list(my_dict.values()).index(112)])

Выход:

java
python
python

Объяснение:
Подход, используемый здесь, заключается в том, чтобы найти два отдельных списка ключей и значений. Затем выберите ключ, используя позицию значения в val_list . Поскольку ключ в любой позиции N в key_list будет иметь соответствующее значение в позиции N в val_list.

Способ № 2: Использование dict.item ()

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

def get_key(val):

    for key, value in my_dict.items():

         if val == value:

             return key

  

    return "key doesn't exist"

  

  

my_dict ={"java":100, "python":112, "c":11}

  

print(get_key(100))

print(get_key(11))

Выход:

java
c

Рекомендуемые посты:

Python | Получить ключ от значения в словаре

0.00 (0%) 0 votes

Проверьте, существует ли данный ключ уже в словаре — python

Я хотел проверить, существует ли ключ в словаре, прежде чем обновлять значение для ключа.
Я написал следующий код:

if 'key1' in dict.keys():
  print "blah"
else:
  print "boo"

Я думаю, что это не самый лучший способ выполнить эту задачу. Есть ли лучший способ проверить наличие ключа в словаре?

python

dictionary

Поделиться

Источник


Mohan Gulati    

21 октября 2009 в 19:05

16 Ответов



2737

in -это предполагаемый способ проверить наличие ключа в dict .

d = dict()

for i in range(100):
    key = i % 10
    if key in d:
        d[key] += 1
    else:
        d[key] = 1

Если вы хотите иметь значение по умолчанию, вы всегда можете использовать dict.get() :

d = dict()

for i in range(100):
    key = i % 10
    d[key] = d.get(key, 0) + 1

и если вы хотите всегда гарантировать значение по умолчанию для любого ключа, вы можете использовать defaultdict из модуля collections , например:

from collections import defaultdict

d = defaultdict(int)

for i in range(100):
    d[i % 10] += 1

но в целом ключевое слово in -это лучший способ сделать это.

Поделиться


Chris B.    

21 октября 2009 в 19:10



1347

Вам не нужно вызывать ключи:

if 'key1' in dict:
  print "blah"
else:
  print "boo"

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

Поделиться


Jason Baker    

21 октября 2009 в 19:06



248

Вы можете проверить наличие ключа в словаре, используя ключевое слово in:

d = {'a': 1, 'b': 2}
'a' in d # <== evaluates to True
'c' in d # <== evaluates to False

Обычно для проверки наличия ключа в словаре перед его изменением используется инициализация значения по умолчанию (например, если ваши значения являются списками, и вы хотите убедиться, что есть пустой список, к которому можно добавить первое значение ключа). В таких случаях вы можете обнаружить, что тип collections.defaultdict() представляет интерес.

В более старом коде вы также можете найти некоторые применения has_key(), устаревшего метода проверки наличия ключей в словарях (вместо этого просто используйте key_name in dict_name).

Поделиться


Michael Aaron Safyan    

21 октября 2009 в 19:16



87

Вы можете сократить это:

if 'key1' in dict:
    ...

Однако это в лучшем случае косметическое улучшение. Почему вы считаете, что это не самый лучший способ?

Поделиться


Greg Hewgill    

21 октября 2009 в 19:06



44

Я бы рекомендовал вместо этого использовать метод setdefault . Похоже, он сделает все, что вы хотите.

>>> d = {'foo':'bar'}
>>> q = d.setdefault('foo','baz') #Do not override the existing key
>>> print q #The value takes what was originally in the dictionary
bar
>>> print d
{'foo': 'bar'}
>>> r = d.setdefault('baz',18) #baz was never in the dictionary
>>> print r #Now r has the value supplied above
18
>>> print d #The dictionary's been updated
{'foo': 'bar', 'baz': 18}

Поделиться


David Berger    

21 октября 2009 в 19:07



43

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

  • 'key' in mydict прошедшее время 1.07 сек
  • mydict.get('key') прошедшее время 1.84 сек
  • mydefaultdict['key'] прошедшее время 1.07 сек

Поэтому использование in или defaultdict рекомендуется против get .

Поделиться


Wtower    

29 мая 2015 в 11:06



42

Словарь в python имеет метод get (‘key’, default). Таким образом, вы можете просто установить значение по умолчанию в случае отсутствия ключа.

values = {...}
myValue = values.get('Key', None)

Поделиться


mafonya    

01 марта 2017 в 09:03


Поделиться


HungryArthur    

06 февраля 2014 в 16:08



21

Использование тернарного оператора:

message = "blah" if 'key1' in dict else "booh"
print(message)

Поделиться


Charitoo    

18 августа 2017 в 22:58



15

Способы, с помощью которых вы можете получить результаты, следующие:

Что лучше зависит от 3 вещей:

  1. Есть ли в словаре «обычно есть ключ» или «обычно нет ключа».
  2. Собираетесь ли вы использовать такие условия, как if…else…elseif…else?
  3. Насколько велик словарь?

Подробнее: http://paltman.com/try-except-performance-in-python-a-simple-test/

Использование try / block вместо ‘in’ или ‘if’:

try:
    my_dict_of_items[key_i_want_to_check]
except KeyError:
    # Do the operation you wanted to do for "key not present in dict".
else:
    # Do the operation you wanted to do with "key present in dict."

Поделиться


Bishwas Mishra    

21 декабря 2016 в 07:05



14

Просто добавление FYI к Крису. B (лучший ответ):

d = defaultdict(int)

Работает также; причина в том, что вызов int() возвращает 0 , что и делает defaultdict за кулисами (при построении словаря), следовательно, имя «Factory Function» в документации.

Поделиться


Mauricio Morales    

19 мая 2013 в 18:12



13

Только Python 2: (и python 2.7 уже поддерживает in )

вы можете использовать метод has_key():

if dict.has_key('xyz')==1:
    #update the value for the key
else:
    pass

Поделиться


wan kenobi    

09 мая 2013 в 10:17



4

Python словарь имеет метод под названием __contains__ . Этот метод вернет True, если в словаре есть ключ else, возвращающий False.

 >>> temp = {}

 >>> help(temp.__contains__)

Help on built-in function __contains__:

__contains__(key, /) method of builtins.dict instance
    True if D has a key k, else False.

Поделиться


Siva Gnanam    

26 апреля 2017 в 11:02



3

Совместное использование еще одного способа проверки наличия ключа с помощью булевых операторов.

d = {'a': 1, 'b':2}
keys = 'abcd'

for k in keys:
    x = (k in d and 'blah') or 'boo'
    print(x) 

Это возвращение

>>> blah
>>> blah
>>> boo
>>> boo

Объяснение

Во-первых, вы должны знать , что в Python , 0, None или объектах с нулевой длиной значение равно False . Все остальное оценивается в True . Логические операции вычисляются слева направо и возвращают операнд не True или False.

Давайте рассмотрим пример:

>>> 'Some string' or 1/0 
'Some string'
>>>

Поскольку 'Some string' вычисляется как True, то rest из or не вычисляется и не возникает деления на нулевую ошибку.

Но если мы переключаемся, то ордер 1/0 вычисляется первым и вызывает исключение:

>>> 1/0 or 'Some string'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>> 

Мы можем использовать этот шаблон для проверки наличия ключа.

(k in d and 'blah')

делает то же самое, что и

if k in d:
    'blah'
else:
    False

Это уже возвращает правильный результат, если ключ существует, но мы хотим, чтобы он напечатал ‘boo’, когда его нет. поэтому мы берем результат и or его с 'boo'

>>> False or 'boo'
'boo'
>>> 'blah' or 'boo'
'blah'
>>> 

Поделиться


J. Antunes    

27 апреля 2019 в 23:30



0

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

dic = {'first' : 12, 'second' : 123}
for each in dic:
    if each == 'second': 
        print('the key exists and the corresponding value can be updated in the dictionary')

Поделиться


Abdulkalek    

12 февраля 2019 в 23:31



0

Чтобы получить представление о том, как это сделать, мы сначала проверим, какие методы мы можем вызвать в словаре.
Вот эти методы:

d={'clear':0, 'copy':1, 'fromkeys':2, 'get':3, 'items':4, 'keys':5, 'pop':6, 'popitem':7, 'setdefault':8, 'update':9, 'values':10}

Python Dictionary clear()       Removes all Items
Python Dictionary copy()        Returns Shallow Copy of a Dictionary
Python Dictionary fromkeys()    Creates dictionary from given sequence
Python Dictionary get()         Returns Value of The Key
Python Dictionary items()       Returns view of dictionary (key, value) pair
Python Dictionary keys()        Returns View Object of All Keys
Python Dictionary pop()         Removes and returns element having given key
Python Dictionary popitem()     Returns & Removes Element From Dictionary
Python Dictionary setdefault()  Inserts Key With a Value if Key is not Present
Python Dictionary update()      Updates the Dictionary 
Python Dictionary values()      Returns view of all values in dictionary

Жестокий метод, чтобы проверить, если ключ уже существует, может стать методом get() :

d.get("key")

Два других интересных метода items() и keys() кажутся слишком большой работой. Итак, давайте рассмотрим, является ли get() правильным методом для нас. У нас есть наш дикт d :

d= {'clear':0, 'copy':1, 'fromkeys':2, 'get':3, 'items':4, 'keys':5, 'pop':6, 'popitem':7, 'setdefault':8, 'update':9, 'values':10}

Печать показывает, что ключ, которого у нас нет, вернется None :

print(d.get('key')) #None
print(d.get('clear')) #0
print(d.get('copy')) #1

Мы можем использовать это, чтобы получить информацию, если ключ присутствует или нет.
Но учтите это, если мы создадим дикт с одним key:None :

d= {'key':None}
print(d.get('key')) #None
print(d.get('key2')) #None

Ведущий, что метод get() не является надежным в случае, если некоторые значения могут быть None .
У этой истории должен быть более счастливый конец. Если мы используем компаратор in :

print('key' in d) #True
print('key2' in d) #False

Мы получаем правильные результаты.
Мы можем изучить код байта Python:

import dis
dis.dis("'key' in d")
#   1           0 LOAD_CONST               0 ('key')
#               2 LOAD_NAME                0 (d)
#               4 COMPARE_OP               6 (in)
#               6 RETURN_VALUE

dis.dis("d.get('key2')")
#   1           0 LOAD_NAME                0 (d)
#               2 LOAD_METHOD              1 (get)
#               4 LOAD_CONST               0 ('key2')
#               6 CALL_METHOD              1
#               8 RETURN_VALUE

Это показывает, что оператор сравнения in не просто более надежен, но даже быстрее, чем get() .

Поделиться


prosti    

23 мая 2019 в 20:14


Похожие вопросы:

Ищем элгант способ проверить, существует ли ключ в словаре

Возможный Дубликат : Как проверить, содержит ли ключ NSDictionary или NSMutableDictionary? Я могу получить массив ключей (строк) из словаря, а затем выполнить цикл по нему, сравнивая строку с…

Проверьте, существует ли данный ключ уже в словаре, и увеличьте его

Учитывая словарь, как я могу узнать, был ли заданный ключ в этом словаре уже установлен в значение не-None? I.e.- Я хочу это сделать.: my_dict = {} if (my_dict[key] != None): my_dict[key] = 1 else:…

Проверьте, существует ли ключ в словаре типа [Type:Type?]

Как я могу проверить, существует ли ключ в словаре? Мой словарь имеет тип [Type:Type?] . Я не могу просто проверить dictionary[key] == nil , так как это может привести к значению nil . Есть…

Стратегия «pythonic», чтобы проверить, существует ли ключ уже в словаре

Я часто имею дело с разнородными наборами данных и получаю их в виде словарей в своих процедурах python. Я обычно сталкиваюсь с проблемой, что ключ следующей записи, которую я собираюсь добавить в…

Проверьте, существуют ли все значения как ключи в словаре

У меня есть список значений и словарь. Я хочу убедиться, что каждое значение в списке существует как ключ в словаре. На данный момент я использую два набора, чтобы выяснить, если какие-либо значения…

Данный ключ отсутствует в словаре строку типа

Здравствуйте у меня есть словарь типа string string с индексом int : Dictionary<int, Dictionary<string, string>> Я хочу получить доступ в моем представлении к информации с ключом Total,…

Как проверить, существует ли ключ уже в контейнере?

Я создаю приложение для безопасного обмена сообщениями между несколькими клиентами. Чтобы достичь этого, я шифрую сообщение с помощью AES, затем шифрую ключ AES с помощью открытого ключа RSA…

Add-AzureAccount : данный ключ не присутствовал в словаре

В Microsoft Azure PowerShell, когда я запускаю команду Add-AzureAccount, я получаю эту ошибку: Add-AzureAccount : данный ключ не присутствовал в словаре. Кто-нибудь знает, как исправить эту ошибку?…

Как проверить, есть ли в словаре уже ключ ‘x’?

Я пытаюсь реализовать простой алгоритм с использованием словаря C#’s : Мой словарь ‘outer’ выглядит следующим образом: Dictionary<paramID, Dictionary<string, object>> [где paramID-это…

Xamarin профилировщик не запускается — данный ключ отсутствует в словаре

Xamarin профилировщик не запускается с Visual Studio 2013. Я получаю ниже сообщения в моем OUTPUT — Произошла ошибка. Дополнительные сведения см. В разделе полное исключение в журналах. Данный ключ…

Python. Урок 9. Словари (dict)

Словари (dict) – это одна из наиболее часто используемых структур данных, позволяющая хранить объекты, для доступа к которым используется ключ. В этом уроке будут рассмотрены операции создания, удаления, работы со словарями и их методы.

Что такое словарь (dict) в Python?

Словарь (dict) представляет собой структуру данных (которая ещё называется ассоциативный массив), предназначенную для хранения произвольных объектов с доступом по ключу. Данные в словаре хранятся в формате ключ – значение. Если вспомнить такую структуру как список, то доступ к его элементам осуществляется по индексу, который представляет собой целое неотрицательное число, причем мы сами, непосредственно, не участвуем в его создании (индекса). В словаре аналогом индекса является ключ, при этом ответственность за его формирование ложится на программиста.

Создание, изменение, удаление словарей и работа с его элементами

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

>>> d1 = dict()
>>> print(type(d1))
<class 'dict'>
>>> d2 = {}
>>> print(type(d2))
<class 'dict'>

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

>>> d1 = dict(Ivan="manager", Mark="worker")
>>> print(d1)
{'Mark': 'worker', 'Ivan': 'manager'}
>>> d2 = {"A1":"123", "A2":"456"}
>>> print(d2)
{'A2': '456', 'A1': '123'}

Добавление и удаление элемента
Чтобы добавить элемент в словарь нужно указать новый ключ и значение.

>>> d1 = {"Russia":"Moscow", "USA":"Washington"}
>>> d1["China"]="Beijing"
>>> print(d1)
{'Russia': 'Moscow', 'China': 'Beijing', 'USA': 'Washington'}

Для удаления элемента из словаря можно воспользоваться командой del.

>>> d2 = {"A1":"123", "A2":"456"}
>>> del d2["A1"]
>>> print(d2)
{'A2': '456'}

Работа со словарем
Проверка наличия ключа в словаре производится с помощью оператора in.

>>> d2 = {"A1":"123", "A2":"456"}
>>> "A1" in d2
True
>>> "A3" in d2
False

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

>>> d1 = {"Russia":"Moscow", "USA":"Washington"}
>>> d1["Russia"]
'Moscow'

Методы словарей

У словарей доступен следующий набор методов.

clear()
Удаляет все элементы словаря.

>>> d2 = {"A1":"123", "A2":"456"}
>>> print(d2)
{'A2': '456', 'A1': '123'}
>>> d2.clear()
>>> print(d2)
{}

copy()
Создается новая копия словаря.

>>> d2 = {"A1":"123", "A2":"456"}
>>> d3 = d2.copy()
>>> print(d3)
{'A1': '123', 'A2': '456'}
>>> d3["A1"]="789"
>>> print(d2)
{'A2': '456', 'A1': '123'}
>>> print(d3)
{'A1': '789', 'A2': '456'}

fromkeys(seq[, value])
Создает новый словарь с ключами из seq и значениями из value. По умолчанию value присваивается значение None.

get(key)
Возвращает значение из словаря по ключу key.

>>> d = {"A1":"123", "A2":"456"}
>>> d.get("A1")
'123'

items()
Возвращает элементы словаря (ключ, значение) в отформатированном виде.

>>> d = {"A1":"123", "A2":"456"}
>>> d.items()
dict_items([('A2', '456'), ('A1', '123')])

keys()
Возвращает ключи словаря.

>>> d = {"A1":"123", "A2":"456"}
>>> d.keys()
dict_keys(['A2', 'A1'])

pop(key[, default])
Если ключ key есть в словаре, то данный элемент удаляется из словаря и возвращается значение по этому ключу, иначе будет возвращено значение default. Если default не указан и запрашиваемый ключ отсутствует в словаре, то будет вызвано исключение KeyError.

>>> d = {"A1":"123", "A2":"456"}
>>> d.pop("A1")
'123'
>>> print(d)
{'A2': '456'}

popitem()
Удаляет и возвращает пару (ключ, значение) из словаря. Если словарь пуст, то будет вызвано исключение KeyError.

>>> d = {"A1":"123", "A2":"456"}
>>> d.popitem()
('A2', '456')
>>> print(d)
{'A1': '123'}

setdefault(key[, default])
Если ключ key есть в словаре, то возвращается значение по ключу. Если такого ключа нет, то в словарь вставляется элемент с ключом key и значением default, если default не определен, то по умолчанию присваивается None.

>>> d = {"A1":"123", "A2":"456"}
>>> d.setdefault("A3", "777")
'777'
>>> print(d)
{'A2': '456', 'A3': '777', 'A1': '123'}
>>> d.setdefault("A1")
'123'
>>> print(d)
{'A2': '456', 'A3': '777', 'A1': '123'}

update([other])
Обновить словарь парами (key/value) из other, если ключи уже существуют, то обновить их значения.

>>> d = {"A1":"123", "A2":"456"}
>>> d.update({"A1":"333", "A3":"789"})
>>> print(d)
{'A2': '456', 'A3': '789', 'A1': '333'}

values()
Возвращает значения элементов словаря.

>>> d = {"A1":"123", "A2":"456"}
>>> d.values()
dict_values(['456', '123'])

P.S.

Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.

<<< Python. Урок 8. Кортежи (tuple)   Python. Урок 10. Функции в Python>>>

проверить, существует ли ключ в словаре (6 способов) — thispointer.com

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

Предположим, у нас есть словарь строк и int, т.е.

 # Словарь строк и int
word_freq = {
    «Здравствуйте»: 56,
    "at": 23,
    «тест»: 43,
    «это»: 78
}
 

Теперь мы хотим проверить, существует ли в этом словаре ключ «test».

Есть разные способы сделать это. Давайте обсудим их по очереди.

Python: проверьте, есть ли ключ в словаре, используя оператор if-in

Мы можем напрямую использовать оператор in со словарем, чтобы проверить, существует ли ключ в словаре или nor. Выражение,

 ключ в словаре 

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

 # Словарь строк и int
word_freq = {
    «Здравствуйте»: 56,
    "at": 23,
    «тест»: 43,
    «это»: 78
}

ключ = 'тест'

# python проверяет, введен ли ключ в dict, используя "in"
если ввести word_freq:
    print (f "Да, ключ: '{key}' существует в словаре")
еще:
    print (f "Нет, ключ: '{key}' не существует в словаре")
 

Выход:

 Да, ключ: 'test' существует в словаре 

Здесь он подтверждает, что ключ «test» существует в словаре.

Теперь давайте протестируем отрицательный пример, то есть проверим, существует ли ключ «образец» в словаре или нет, например

 # Словарь строк и int
word_freq = {
    «Здравствуйте»: 56,
    "at": 23,
    «тест»: 43,
    «это»: 78
}

ключ = 'образец'

# python проверяет, введен ли ключ в dict, используя "in"
если ввести word_freq:
    print (f "Да, ключ: '{key}' существует в словаре")
еще:
    print (f "Нет, ключ: '{key}' не существует в словаре")
 

Выход:

 Нет, ключ: 'sample' не существует в словаре 

Здесь подтверждается, что ключ «образец» не существует в словаре.

Python: проверьте, есть ли у dict ключ, используя функцию get ()

В python класс dict предоставляет метод get (), который принимает ключ и значение по умолчанию, т.е.

 dict.get (ключ [, по умолчанию]) 

Поведение этой функции,

  • Если данный ключ существует в словаре, он возвращает значение, связанное с этим ключом,
  • Если данный ключ не существует в словаре, он возвращает переданный аргумент значения по умолчанию.
  • Если данный ключ не существует в словаре и значение по умолчанию также не указано, возвращается None.

Давайте воспользуемся функцией get (), чтобы проверить, существует ли данный ключ в словаре или нет,

 # Словарь строк и int
word_freq = {
    «Здравствуйте»: 56,
    "at": 23,
    «тест»: 43,
    «это»: 78
}

ключ = 'образец'

# проверяем, существует ли ключ в словаре, проверяя, не вернул ли get () None
если word_freq.get (key) не равно None:
    print (f "Да, ключ: '{key}' существует в словаре")
еще:
    print (f "Нет, ключ: '{key}' не существует в словаре")
 

Выход:

 Нет, ключ: 'sample' не существует в словаре 

Здесь подтверждается, что ключевой «образец» не существует в словаре.

Мы передали аргумент sample в функцию get () без значения по умолчанию. Так как наш словарь не содержит муравейника «образец» и не указано значение по умолчанию, он вернул None.

Если мы передаем значение по умолчанию вместе с ключом, и если ключ не существует в словаре, то возвращается значение по умолчанию. Например,

 ключ = 'образец'

# проверяем, существует ли ключ в словаре, проверяя, вернула ли get () значение по умолчанию
если word_freq.get (key, -1)! = -1:
    print (f "Да, ключ: '{key}' существует в словаре")
еще:
    print (f "Нет, ключ: '{key}' не существует в словаре")
 

Выход:

 Нет, ключ: 'sample' не существует в словаре 

Здесь подтверждается, что ключевой «образец» не существует в словаре.

Мы передали аргумент «sample» в функцию get () вместе со значением по умолчанию -1. Поскольку наш словарь не содержит муравейника «образец», функция get () вернула значение по умолчанию.

Мы не всегда можем быть уверены в результате dict.get (), существует ли ключ в словаре или нет. Следовательно, мы должны использовать dict.get () для проверки наличия ключа в словаре, только если мы уверены, что не может быть записи ключа с заданным значением по умолчанию.

Python: проверьте, введен ли ключ в dict с помощью keys ()

Функция словаря

keys () возвращает последовательность всех ключей в словаре.Итак, мы можем использовать ключевое слово «in» с возвращенной последовательностью ключей, чтобы проверить, существует ли ключ в словаре или нет. Например,

 word_freq = {
    «Здравствуйте»: 56,
    "at": 23,
    «тест»: 43,
    «это»: 78
}

ключ = 'тест'

если ввести word_freq.keys ():
    print (f "Да, ключ: '{key}' существует в словаре")
еще:
    print (f "Нет, ключ: '{key}' не существует в словаре")
 

Выход:

 Да, ключ: 'test' существует в словаре 

Здесь он подтверждает, что ключ «test» существует в словаре.

python проверяет, есть ли ключ в словаре, используя try / except

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

 def check_key_exist (test_dict, ключ):
    пытаться:
       значение = test_dict [ключ]
       вернуть True
    кроме KeyError:
        return False

# Словарь строк и int
word_freq = {
    «Здравствуйте»: 56,
    "at": 23,
    «тест»: 43,
    «это»: 78
}

ключ = 'тест'

# проверяем, есть ли в словаре ключ в python
если check_key_exist (word_freq, key):
    print (f "Да, ключ: '{key}' существует в словаре")
еще:
    print (f "Нет, ключ: '{key}' не существует в словаре")
 

Выход:

 Да, ключ: 'test' существует в словаре 

Здесь он подтверждает, что ключ «test» существует в словаре.

В функции check_key_exist () он обращается к значению данного ключа. Если ключ не существует, возникает ошибка KeyError, в этом случае возвращается False, в противном случае возвращается True

.

Проверить, нет ли ключа в словаре в Python, используя оператор «if not in»

Во всех приведенных выше примерах мы проверяли, существует ли ключ в словаре или нет. Но если вы хотите проверить, не существует ли ключа в словаре, мы можем напрямую использовать «not in» со словарем, т.е.

 word_freq = {"Привет": 56, "at": 23, "test": 43, "this": 78}

ключ = 'образец'

# Проверяем, не находится ли ключ в dict python
если ключ не в word_freq:
    print (f "Нет, ключ: '{key}' не существует в словаре")
еще:
    print (f "Да, ключ: '{key}' существует в словаре") 

Выход:

 Нет, ключ: 'sample' не существует в словаре 

Здесь он подтверждает, что ключ «test» существует в словаре.

Проверить, существует ли ключ в словаре с помощью функции has_key ()

dict предоставляет функцию has_key () для проверки, существует ли ключ в словаре или нет. Но эта функция больше не поддерживается в python 3. Таким образом, приведенный ниже пример будет работать только в python 2.7, т.е.

.

, если word_freq.has_key ('test'):
    print («Да, ключ test существует в dict»)
еще:
    print («В dict нет ключа 'test'»)
 

Выход:

 Да, ключ: 'test' существует в словаре 

Здесь он подтверждает, что ключ «test» существует в словаре.

Полный пример выглядит следующим образом.

 def check_key_exist (test_dict, ключ):
    пытаться:
       значение = test_dict [ключ]
       вернуть True
    кроме KeyError:
        return False


def main ():

    # Словарь строк и int
    word_freq = {
        «Здравствуйте»: 56,
        "at": 23,
        «тест»: 43,
        «это»: 78
    }
    print ("*** Python: проверьте, есть ли ключ в словаре, используя оператор if-in ***")

    ключ = 'тест'

    # python проверяет, введен ли ключ в dict, используя "in"
    если ввести word_freq:
        print (f "Да, ключ: '{key}' существует в словаре")
    еще:
        print (f "Нет, ключ: '{key}' не существует в словаре")

    ключ = 'образец'

    # python проверяет, введен ли ключ в dict, используя "in"
    если ввести word_freq:
        print (f "Да, ключ: '{key}' существует в словаре")
    еще:
        print (f "Нет, ключ: '{key}' не существует в словаре")

    print ("*** Python: проверьте, есть ли у dict ключ, используя функцию get () ***")

    ключ = 'образец'

    # проверяем, существует ли ключ в словаре, проверяя, не вернул ли get () None
    если word_freq.get (key) не равно None:
        print (f "Да, ключ: '{key}' существует в словаре")
    еще:
        print (f "Нет, ключ: '{key}' не существует в словаре")

    ключ = 'образец'

    # проверяем, существует ли ключ в словаре, проверяя, вернула ли get () значение по умолчанию
    если word_freq.get (key, -1)! = -1:
        print (f "Да, ключ: '{key}' существует в словаре")
    еще:
        print (f "Нет, ключ: '{key}' не существует в словаре")

    print ('python проверяет, введен ли ключ в dict, используя keys ()')

    ключ = 'тест'

    если ввести word_freq.ключи ():
        print (f "Да, ключ: '{key}' существует в словаре")
    еще:
        print (f "Нет, ключ: '{key}' не существует в словаре")

    print ('python проверяет, введен ли ключ в dict, используя try / except')

    print ('python проверяет, есть ли ключ в словаре, используя try / except')

    ключ = 'тест'

    # проверяем, есть ли в словаре ключ в python
    если check_key_exist (word_freq, key):
        print (f "Да, ключ: '{key}' существует в словаре")
    еще:
        print (f "Нет, ключ: '{key}' не существует в словаре")

    print ('проверьте, нет ли ключа в словаре в python, используя оператор if not in')

    ключ = 'образец'

    # Проверяем, не находится ли ключ в dict python
    если ключ не в word_freq:
        print (f "Нет, ключ: '{key}' не существует в словаре")
    еще:
        print (f "Да, ключ: '{key}' существует в словаре")

    print ('проверьте, нет ли ключа в словаре в python, используя has_keys')

если __name__ == '__main__':
    главный()

 

Выход

 *** Python: проверьте, есть ли ключ в словаре, используя оператор if-in ***
Да, ключ: 'test' существует в словаре
Нет, ключ: "образец" не существует в словаре
*** Python: проверьте, есть ли у dict ключ, используя функцию get () ***
Нет, ключ: "образец" не существует в словаре
Нет, ключ: "образец" не существует в словаре
python проверяет, введен ли ключ в dict, используя keys ()
Да, ключ: 'test' существует в словаре
python проверяет, введен ли ключ в dict, используя try / except
python проверяет, есть ли ключ в словаре, используя try / except
Да, ключ: 'test' существует в словаре
проверьте, нет ли ключа в словаре в python, используя if not in statement
Нет, ключ: "образец" не существует в словаре
проверьте, нет ли ключа в словаре в Python, используя has_keys
 

.

4 простых метода проверки наличия ключа в словаре Python

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


Метод 1: оператор «in» для проверки наличия ключа в словаре Python

Python в операторе вместе с оператором if можно использовать для проверки, существует ли конкретный ключ во входном словаре Python.

Оператор Python in в основном проверяет, содержится ли конкретный элемент или значение в определенной последовательности, такой как список, кортеж, словарь и т. Д.

Синтаксис:

для / если значение в итерабельном:
 

Пример:

inp_dict = {'Python': "A", 'Java': "B", 'Ruby': "C", 'Kotlin': "D"}

search_key = 'Рубиновый'

если search_key в inp_dict:
print ("Ключ присутствует. \ n")

еще:
print ("Ключ не существует в словаре.")



 

В приведенном выше примере мы использовали оператор if вместе с оператором Python in , чтобы проверить, присутствует ли в слове ключ «Ruby» или нет.

Выход:

Ключ присутствует.
 

Метод 2: Python keys () метод

Встроенный в Python метод keys () можно использовать для проверки наличия ключа в существующем словаре.

Синтаксис:

диктатключи ()
 

Метод keys () принимает без аргументов и возвращает объект , который представляет список всех ключей , присутствующих в конкретном входном словаре.

Итак, чтобы проверить, присутствует ли конкретный ключ в dict, мы используем оператор Python if вместе с методом keys () для сравнения search_key со списком ключей, возвращаемым методом keys (). Если ключ присутствует, он будет следовать за оператором в части if, иначе он перейдет к оператору в части else .

Пример:

inp_dict = {'Python': "A", 'Java': "B", 'Ruby': "C", 'Kotlin': "D"}

search_key = 'Рубиновый'

если search_key в inp_dict.keys ():
print ("Ключ присутствует. \ n")

еще:
print («Ключ не существует в словаре.»)



 

Выход:

Ключ присутствует.
 

Пример 2:

inp_dict = {'Python': "A", 'Java': "B", 'Ruby': "C", 'Kotlin': "D"}

search_key = 'Cpp'

если search_key в inp_dict.ключи ():
print ("Ключ присутствует. \ n")

еще:
print («Ключ не существует в словаре.»)



 

Выход:

Ключ не существует в словаре.
 

Метод 3: метод get () для проверки наличия ключа в словаре Python

Python get () метод может использоваться для проверки наличия определенного ключа в парах «ключ-значение» словаря.

Метод get () на самом деле возвращает значение, связанное с ключом , если ключ присутствует в словаре, иначе он возвращает « None ».

Синтаксис:

dict.get (ключ, по умолчанию = Нет)
 

Мы передаем ключ для поиска в качестве аргумента методу get (), и если функция get () не возвращает None , т.е. если ключ присутствует в dict, мы его печатаем.

Пример 1:

inp_dict = {'Python': "A", 'Java': "B", 'Ruby': "C", 'Kotlin': "D"}



если inp_dict.get ('Python')! = Нет:
print ("Ключ присутствует. \ n")

еще:
print ("Ключ не существует в словаре.")



 

Выход:

Ключ присутствует.
 

Метод 4: метод has_key () Python

Примечание: Метод has_keys () не используется в Python версии 3 и выше.

Python Метод has_key () проверяет, доступен ли конкретный ключ в dict, и возвращает True, иначе он возвращает false.

Синтаксис:

dict.has_keys ()
 

Пример:

inp_dict = {'Python': "A", 'Java': "B", 'Ruby': "C", 'Kotlin': "D"}

search_key = 'Котлин'

если inp_dict.has_key (search_key):
print ("Ключ присутствует. \ n")

еще:
print («Ключ не существует в словаре.»)

 

Заключение

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

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


Список литературы

.

Правильный способ проверить ключ в словаре в python

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

.

python проверяет дубликаты ключа в словаре

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *