毎日Learning

学んだことを共有します

P17 (*)リストを2つに分割する。1つ目の要素の長さは指定される。

def split_list(l, num):
    return [l[:num], l[num:]] if isinstance(l, list) else None

if __name__ == "__main__":
    print split_list("a", 3) == None
    print split_list([], 0) == [[], []]
    print split_list(["a"], -1) == [[], ['a']]
    print split_list(["a"], 0) == [[], ['a']]
    print split_list(["a"], 1) == [['a'], []]
    print split_list(["a"], 2) == [['a'], []]
    print split_list(["a", "b"], -3) == [[], ['a', 'b']]
    print split_list(["a", "b"], -2) == [[], ['a', 'b']]
    print split_list(["a", "b"], -1) == [['a'], ['b']]
    print split_list(["a", "b"], 0) == [[], ['a', 'b']]
    print split_list(["a", "b"], 1) == [['a'], ['b']]
    print split_list(["a", "b"], 2) == [['a', 'b'], []]
    print split_list(["a", "b"], 3) == [['a', 'b'], []]
    print split_list(["a", "b", "c"], -4) == [[], ['a', 'b', 'c']]
    print split_list(["a", "b", "c"], -3) == [[], ['a', 'b', 'c']]
    print split_list(["a", "b", "c"], -2) == [['a'], ['b', 'c']]
    print split_list(["a", "b", "c"], -1) == [['a', 'b'], ['c']]
    print split_list(["a", "b", "c"], 0) == [[], ['a', 'b', 'c']]
    print split_list(["a", "b", "c"], 1) == [['a'], ['b', 'c']]
    print split_list(["a", "b", "c"], 2) == [['a', 'b'], ['c']]
    print split_list(["a", "b", "c"], 3) == [['a', 'b', 'c'], []]
    print split_list(["a", "b", "c"], 4) == [['a', 'b', 'c'], []]
    print split_list(["a", "b", "c", "d", "e", "f", "g", "h", "i", "k"], -3) == [['a', 'b', 'c', 'd', 'e', 'f', 'g'], ['h', 'i', 'k']]
    print split_list(["a", "b", "c", "d", "e", "f", "g", "h", "i", "k"], 3) == [["a", "b", "c"], ["d", "e", "f", "g", "h", "i", "k"]]