Как создать многомерный массив с ключами?

Рейтинг: 0Ответов: 2Опубликовано: 04.02.2015

Хочу написать небольшой скрипт на python. Язык знаю посредственно, а сделать охота быстро. Как создать многомерный массив с ключами? Что-то вроде такого:

 А = [ 0 : [ [1,3] ,[2,4] ],
       3 : [ [4,3] ,[5,4] ],
      75 : [ [10,3] ,[20,4] ] ]

Для понятности: нужно в цикле забивать кортежи (кортежи ли? - я не дока) в цикле по принципу имеем 3 строки из базы - ид, значение, время и должны получить удобоваримый массив, чтобы можно было записать отдельно массивы с разными ид, то есть:

  massiv = {
            id_1 : [ [val_11, time_11], [val_21, time_21] ],
            id_2 : [ [val_12, time_12], [val_22, time_22] ],
            id_3 : [ [val_13, time_13], [val_23, time_23] ]
           }
что то вроде

for i in len(id):

    massiv(id[i] : { [ val[i], time[i] ] }

Ответы

▲ 2
A = {
  0: [[1, 3], [2, 4]],
  3: [[4, 3], [5, 4]],
  75: [[10, 3], [20, 4]]
}
▲ 1
                        a = dict()
                        id = [1,2,3,1,1]
                        val = [1,3,4,5,5]
                        time = [5,6,7,6,5]
                        for i in range(len(id)):
                            try:
                                a[id[i]].append((val[i], time[i]))
                            except KeyError:
                                a[id[i]] = [(val[i], time[i])]
                        print(a[1][0][0])
                        print(a)

1

{1: [(1, 5), (5, 6), (5, 5)], 2: [(3, 6)], 3: [(4, 7)]}


еще лучше

            from collections import defaultdict

            a = defaultdict(list)
            id = [1, 2, 3, 1, 1]
            val = [1, 3, 4, 5, 5]
            time = [5, 6, 7, 6, 5]
            for i in range(len(id)):
                a[id[i]].append((val[i], time[i]))

            for k in a.keys():
                print(k, a[k])