受け取りが、a,b,c の3つなので、3分割と解釈します。
要素の長さに端数がある場合は対応が必要かもしれませんが、
python
1list_ = [1, 2, 3, 4, 5, 6, 7, 8, 9]
2
3## numpy が使える場合 (別解)
4import numpy as np
5
6a, b, c = np.array_split(list_, 3)
7
8## イテレーターで読み出す方法
9# ※ n個に分割ではなく、要素の長さをnずつに分割
10# [iter(seq)] * 3 -> [<iter>, <iter>, <iter>] イテレータのリストを作り
11# zip(*[<iter>, <iter>, <iter>]) -> zip(<iter>, <iter>, <iter>)
12# イテレータはコピーなので、リストから順番に3個ずつ値を取り出します
13# [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
14# see also "itertoolz.partition"
15
16def chunk(seq, size):
17 return zip(*[iter(seq)] * size)
18
19a, b, c = chunk(list_, len(list_)//3)
20
21## リスト内包表記+スライス
22# range(0, 9, 3) -> [0, 3, 6] 始点のリストを作り
23# list_[i:i+3] を繰り返す事で、スライスのリストを構築
24# [list_[0:3], list_[3:6], list_[6:9]]
25
26a, b, c = [list_[i:i+3] for i in range(0, len(list_), 3)]