Отображение между матрицами - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть 2 матрицы:

list_alpha = [['a'], 
              ['b'], 
              ['c'], 
              ['d'], 
              ['e']]

list_beta = [['1', 'a', 'e', 'b'],
             ['2', 'd', 'X', 'X'], 
             ['3', 'a', 'X', 'X'],
             ['4', 'd', 'a', 'c'],

И моя цель - если письмо из list_alpha находится в подсписке list_beta, то первый элемент этой строки в list_beta (#) добавляется кправильная строка в list_alpha.Таким образом, мой вывод будет:

final_list = [['a', '1', '3', '4'], 
              ['b', '1'], 
              ['c', '4'], 
              ['d', '2', '4'], 
              ['e', '1']] 

Но я довольно плохо знаком с Python и программированием в целом, и я не уверен, как это сделать.Есть ли способ закодировать это?Или мне нужно изменить способ хранения данных в любом списке?


Редактировать:

Помогла смена list_alpha на словарь!

Окончательный код:

dict_alpha = {'a': [], 'b': [], 'c': [], 'd': [], 'e':[]}
list_beta = [['1', 'a', 'e', 'b'],
             ['2', 'd', 'X', 'X'],
             ['3', 'a', 'X', 'X'],
             ['4', 'd', 'a', 'c'],
             ['5', 'X', 'X', 'e'],
             ['6', 'c', 'X', 'X']]
for letter in dict_alpha:
    for item in list_beta:
        if letter in item:
            dict_alpha.get(letter).append(item[0])
print(dict_alpha)

1 Ответ

0 голосов
/ 30 сентября 2018

Вы можете использовать dict_alpha так же, как list_alpha, а затем исправить цикл for.

Например:

dict_alpha = [['a'],
              ['b'], 
              ['c'], 
              ['d'], 
              ['e']]

list_beta = [['1', 'a', 'e', 'b'],
             ['2', 'd', 'X', 'X'],
             ['3', 'a', 'X', 'X'],
             ['4', 'd', 'a', 'c'],
             ['5', 'X', 'X', 'e'],
             ['6', 'c', 'X', 'X']]

for al in dict_alpha:
    for bt in list_beta:
        for i in range(1, len(bt)):
            if (bt[i] == al[0]):
                al.append(bt[0])

print(dict_alpha)

Выход:

[['a', '1', '3', '4'], 
['b', '1'], 
['c', '4', '6'], 
['d', '2', '4'], 
['e', '1', '5']]

Надеюсь на помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...