サードパーティモジュールmore-itertoolsを使うと楽で、しかも柔軟です。
Python
1from more_itertools import distribute
2
3src = [["100", "150", "140", "120", "130", "110"], ["2", "4", "3", "5"]]
4dst = [[list(e) for e in distribute(2, row)] for row in src]
5
6print(dst)
7# => [[['100', '140', '130'], ['150', '120', '110']], [['2', '3'], ['4', '5']]]
標準機能だけで書くなら、こんな感じでしょうか。
Python
1src = [["100", "150", "140", "120", "130", "110"], ["2", "4", "3", "5"]]
2dst = [
3 [row[0::2], row[1::2]] for row in src
4]
5
6print(dst)
ついでに
編集前の質問については、こんな感じで書けそう。
Python
1from collections import defaultdict
2
3src = {
4 "a1_0": {0: "100", 1: "120"}, "a1_1": {0: "150", 1: "130"}, "a1_2": {0: "140",1: "110"},
5 "b1_0": {0: "2", 1: "3"}, "b1_1": {0: "4", 1: "5"},
6 "c1_0": {0: "90", 1: "80"}, "c1_1": {0: "40", 1: "50"}
7}
8
9dst = defaultdict(list)
10for key, value in src.items():
11 dst[key[:2]].append(
12 [value[k] for k in sorted(value)]
13 )
14
15for key, value in dst.items():
16 dst[key] = list(zip(*value))