Как передать дополнительную переменную в функцию при соблюдении условий

Скажем, у меня есть следующий код на Python:

hp = 0
if 'header' is in paramdict.keys():
    hp = paramdict['header']
mydf = [pd.read_excel(xlsx, sheet, header = hp) for sheet in xlsx.sheet_names]

Я только хочу пройти header если это в paramdict. (значение по умолчанию 0)

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

1 ответ

Решение

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

hp = paramdict.get('header', 0)
mydf = [pd.read_excel(xlsx, sheet, header=hp) for sheet in xlsx.sheet_names]

Вот пример,

>>> d = {'one': 1, 'two': 2}
>>> d
{'one': 1, 'two': 2}
>>> d.get('one', 'Nope, not here')
1
>>> d.get('three', 'Nope, not here')
'Nope, not here'
Другие вопросы по тегам