Изменить значения словаря Python, относящиеся к другим значениям словаря - PullRequest
2 голосов
/ 12 декабря 2011

Есть ли возможность сделать входные значения по умолчанию зависимыми от одного из входных значений?Я попробовал это:

def getHigh(pricedata, start=min(pricedata), end=max(pricedata)):
    ## do something

Но это не работает, потому что цена пока не определена.

Ответы [ 3 ]

6 голосов
/ 12 декабря 2011

Проще говоря:)

def getHigh(pricedata, start=None, end=None):
    start = min(pricedata) if start is None else start
    end = max(pricedata) if end is None else end
3 голосов
/ 12 декабря 2011

В общем случае вы можете сделать это, используя None и протестировав его.

def getHigh(pricedata, start=None, end=None):
    start = min(pricedata) if start is None else start
    end   = max(pricedata) if end is None else end

В конкретном случае, когда вы устанавливаете диапазон и будете обрабатывать только элементы в этом диапазоне, вы можете использовать значения по умолчанию, которые включают все возможные значения:

def getHigh(pricedata, start=float("-inf"), end=float("+inf")):
    # consider only items between start and end, inclusive
    pricedata = [datum for datum in pricedata if start <= datum <= end]
2 голосов
/ 12 декабря 2011

Два способа сделать то, что вы просили:

def getHigh(pricedata, start=None, end=None):
    if start is None:
        start = min(pricedata)
    if end is None:
        end = max(pricedata)

и ...

def getHigh(pricedata, **kwargs):
    start = kwargs.get("start", min(pricedata))
    end = kwargs.get("end",max(pricedata))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...