リストから特定の長さのDictへの変換方法


長さが2万を超えるリストがあります．  
そのリストから8個ずつ(Keyが1番目の要素，残りの7つがValue)に分けてDictへと変換したいです．（そのリストは8で割り切れます）  
具体的な例を出すと，リスト

[code]

    A = [1, 3, 5, 2, 4, 6, 7, 9, 11, 8, 10, 12, 13, 14, 15, 27]
    
[/code]

のようなリストに対して，期待する出力は

> tmp_dict = {1: [3, 5, 2, 4, 6, 7, 9], 11: [8, 10, 12, 13, 14, 15, 27]}

のようになります．要するに８の倍数の値をKey，それ以外の7つをValueに変換するといった内容になります．  
どなたかご教授お願いします．  
[追記]Keyが重複する可能性があります．重複した場合はそのKeyとValueは無視して元のKeyとValueのままにするような仕様にしたいです．




スライスして辞書化する例です。

[code]

    A = [ 1,  3,  5,  2,  4,  6,  7,  9,
         11,  8, 10, 12, 13, 14, 15, 27,
         11, 22, 33, 44, 55, 66, 77, 88]
    
    group_length = 8
    dict = {}
    for i in range(int(len(A) / group_length)):
        start = i * group_length
        end = (i + 1) * group_length
        key = A[start]
        # 既にキーが存在する場合はスキップ
        if key in dict:
            continue
        dict[key] = A[start + 1: end]
    
    print(dict)
    # {1: [3, 5, 2, 4, 6, 7, 9], 11: [8, 10, 12, 13, 14, 15, 27]}
    
[/code]




スライスして辞書化する例です。

[code]

    A = [ 1,  3,  5,  2,  4,  6,  7,  9,
         11,  8, 10, 12, 13, 14, 15, 27,
         11, 22, 33, 44, 55, 66, 77, 88]
    
    group_length = 8
    dict = {}
    for i in range(int(len(A) / group_length)):
        start = i * group_length
        end = (i + 1) * group_length
        key = A[start]
        # 既にキーが存在する場合はスキップ
        if key in dict:
            continue
        dict[key] = A[start + 1: end]
    
    print(dict)
    # {1: [3, 5, 2, 4, 6, 7, 9], 11: [8, 10, 12, 13, 14, 15, 27]}
    
[/code]

