сохранить матрицу (или двумерный массив) как значения для каждого ключа в словаре - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть следующая таблица из SQL:

b_num   loc max_neg_m   
10    0.89  -480050 
10    0.93  -144107 
10    0.96  -364381 
10    1     -699219 
100   0     -904713 
100   0.2   -772981 
100   0.41  -645617 
100   0.5   -563448 
100   0.67  -520747 
100   1     -218334 
1000  0     -112367 
1000  0.05  15976   

с кодом python, я хочу сохранить двумерный массив lo c, max_neg_m для каждого уникального b_num ,

a=dict()

a.keys(b_num)

a.values=[loc,max_neg_m]

Я ценю любую помощь.

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Я не хочу много говорить, потому что меня немного смущают три строки кода, которые вы дали. Если они предназначены для представления конечного результата, то, возможно, схематично:

Создайте свой словарь 'a' как пустой словарь.

Затем прокрутите ваш b_num, проверяя словарь, чтобы увидеть, есть ли в словаре текущий b_num в качестве ключа.

Если это так, добавьте связанный [lo c, max_neg_m] к этому значению словаря.

Если этого не произойдет, присвойте пару ключ-значение ключа и пустой массив, а затем представьте, что в словаре есть ключ (потому что теперь он есть!).

0 голосов
/ 21 апреля 2020

Да, сохранение двумерных массивов в качестве значений словаря абсолютно возможно. Сделайте это:

dictionary = {}

# Replace ``sql_query_result`` with the appropriate value.
for b_num, loc, max_neg_m in sql_query_result:
    if b_num not in dictionary.keys():
        dictionary[b_num] = []

    dictionary[b_num].append([loc, max_neg_m])
...