Как передать дополнительную переменную в функцию при соблюдении условий
Скажем, у меня есть следующий код на 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'