def get_top_sc_list_pos(scores_list,
                        get_lowest=False,
                        padding=0):
    """
    Get highest (or if get_lowest lowest) scoring list position (zero-based).
    Return position and score at this position.

    scores_list:
        1d list with scores.
    get_lowest:
        Set True to get lowest scoring position.
    padding:
        Do not look at first #padding and last #padding positions.

    >>> sc_list = [0.6, 0.5, 0.4, 0.3, 0.2, 0.1]
    >>> get_top_sc_list_pos(sc_list)
    (0, 0.6)
    >>> get_top_sc_list_pos(sc_list, padding=2)
    (2, 0.4)
    >>> get_top_sc_list_pos(sc_list, get_lowest=True)
    (5, 0.1)

    """
    assert scores_list, "scores_list empty"
    l_sc = len(scores_list)
    assert l_sc >= (padding*2+1), "scores_list length needs to be >= padding*2+1 !"

    top_pos = 0
    top_sc = -1000
    if get_lowest:
        top_sc = 1000

    for idx in range(padding, l_sc-padding):
        pos_sc = scores_list[idx]
        if get_lowest:
            if pos_sc < top_sc:
                top_sc = pos_sc
                top_pos = idx
        else:
            if pos_sc > top_sc:
                top_sc = pos_sc
                top_pos = idx
    return top_pos, top_sc