読者です 読者をやめる 読者になる 読者になる

minとmaxの自前実装(checkio)

Python

サンプルケースにはないけどgeneratorがテストケースに入ってる。

それまでは要素からもいっちょ先頭取り出す(args = args[0])という感じだったのでnot subscriptable errorで怒られた。

まぁそうだよねと思いながらiternextに変えた。あんまり面白くはない。

def min(*args, **kwargs):
    key = kwargs.get("key", lambda *args: args)
    if len(args) == 1:
        args = args[0]
    args = iter(args)
    t = next(args)
    for x in args:
        if key(t) > key(x):
            t = x
    return t


def max(*args, **kwargs):
    key = kwargs.get("key", lambda *args: args)
    if len(args) == 1:
        args = args[0]
    args = iter(args)
    t = next(args)
    for x in args:
        if key(t) < key(x):
            t = x
    return t