Является ли mydict.get(x, x) эквивалентом mydict.get(x) или x?Python

Программы на Python
Ответить
Anonymous
 Является ли mydict.get(x, x) эквивалентом mydict.get(x) или x?

Сообщение Anonymous »

При использовании словаря для периодической замены значений эквивалентны ли .get(x, x) и .get(x) или x?
Для пример:

Код: Выделить всё

def current_brand(brand_name):
rebrands = {
"Marathon":    "Snickers",
"Opal Fruits": "Starburst",
"Jif":         "Cif",
"Thomson":     "TUI",
}

return rebrands.get(brand_name, brand_name)
# or
return rebrands.get(brand_name) or brand_name

# this is forbidden - cannot use `default` keyword argument here
return rebrands.get(brand_name, default=brand_name)

assert current_brand("Jif") == "Cif"
assert current_brand("Boots") == "Boots"
Я думаю, что .get(x) или x более понятны, но это в значительной степени вопрос мнения, поэтому мне любопытно, есть ли у одного из них техническое преимущество или недостаток или другой, который я не заметил.
Изменить: извините, чтобы внести ясность, я предполагаю, что словарь не содержит ложных значений, поскольку это не имело бы смысла в этом контексте (т.е. в приведенном выше примере вы не записываете что "Сомерфилд" переименован в "")

Подробнее здесь: https://stackoverflow.com/questions/791 ... -getx-or-x
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»