Как мне переписать $ x = $ hash {blah} || «по умолчанию» в Python? - PullRequest
3 голосов
/ 13 марта 2009

Как вытащить элемент из словаря Python, не вызывая KeyError? В Perl я бы сделал:

$x = $hash{blah} || 'default'

Что такое эквивалент Python?

Ответы [ 4 ]

9 голосов
/ 13 марта 2009

Используйте метод get(key, default):

>>> dict().get("blah", "default")
'default'
7 голосов
/ 13 марта 2009

Если вы собираетесь много заниматься этим, лучше использовать collection.defaultdict :

import collections

# Define a little "factory" function that just builds the default value when called.
def get_default_value():
  return 'default'

# Create a defaultdict, specifying the factory that builds its default value
dict = collections.defaultdict(get_default_value)

# Now we can look up things without checking, and get 'default' if the key is unknown
x = dict['blah']
1 голос
/ 13 марта 2009
x = hash['blah'] if 'blah' in hash else 'default'
0 голосов
/ 13 марта 2009
x = hash.has_key('blah') and hash['blah'] or 'default'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...