Python get dict: Python dictionary get() Method — Tutorialspoint

Содержание

Метод Get () для словарей в Python

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

dic = {"A":1, "B":2}

print(dic["A"])

print(dic["C"])

Проблема, которая возникает здесь, состоит в том, что 3-я строка кода возвращает ключевую ошибку:

Traceback (most recent call last):
  File ".\dic.py", line 3, in 
    print (dic["C"])
KeyError: 'C'

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

Синтаксис:

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

Пример:

dic = {"A":1, "B":2}

print(dic.get("A"))

print(dic.get("C"))

print(dic.get("C","Not Found ! "))

Выход:

1
None
Not Found !

Эта статья пополняемая Mayank Равата Если вы любите GeeksforGeeks и хотела бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи [email protected] Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

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

Метод Get () для словарей в Python

0.00 (0%) 0 votes

преобразование строки в dict с использованием понимания списка в python

я сталкивался с этой проблемой несколько раз и, похоже, не могу найти простое решение. Скажем, у меня есть строка

    string = "a=0 b=1 c=3"

Я хочу преобразовать это в словарь с A, b и c, являющимся ключом и 0, 1 и 3, являющимися их соответствующими значениями (преобразованными в int). Очевидно, я могу это сделать:

    list = string.split()
    dic = {}
    for entry in list:
        key, val = entry.split('=')
        dic[key] = int(val)

но мне это не очень нравится для цикла, это кажется настолько простым, что вы должны иметь возможность преобразовать его в какое-то выражение понимания списка. И это работает для немного более простых случаев, когда val может быть строкой.

  dic = dict([entry.split('=') for entry in list])

однако мне нужно преобразовать val в int на лету и сделать что-то вроде этого синтаксически неверно.

  dic = dict([[entry[0], int(entry[1])] for entry.split('=') in list])

Итак, мой вопрос: есть ли способ устранить цикл for, используя понимание списка? Если нет, есть ли какой-то встроенный метод python, который сделает это для меня?

8 ответов


вы имеете в виду это?

>>> dict( (n,int(v)) for n,v in (a.split('=') for a in string.split() ) )
{'a': 0, 'c': 3, 'b': 1}

Как насчет однострочного без понимания списка?

 foo="a=0 b=1 c=3"
 ans=eval( 'dict(%s)'%foo. replace(' ',',')) )
 print ans
{'a': 0, 'c': 3, 'b': 1}

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

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

Theme: Overlay by Kaira Extra Text
Cape Town, South Africa