Проблема изменчивости словаря при добавлении нового ключа и значения в словарь в Python - PullRequest
0 голосов
/ 02 октября 2018

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

Expected structure
subsequence_dict={ 0:[15], 1:[15,27], 2:[14],3:[15,27,38],4:[14,26],5:[15,27,38,55],6:[15,27,38,46],7:[15, 27, 38, 55, 65, 85]}

Output:
{0: [15, 27, 38, 55, 65, 85], 1: [15, 27, 38, 55, 65, 85], 2: [14, 26, 46], 3: [15, 27, 38, 55, 65, 85], 4: [14, 26, 46], 5: [15, 27, 38, 55, 65, 85], 6: [14, 26, 46], 7: [15, 27, 38, 55, 65, 85], 8: [15, 27, 38, 55, 65, 85]}

Если посмотреть на ключ 0 в моих выходных данных, это выглядит как проблема с изменчивостью.

Для каждого значения i в главномФункция должна содержать новый ключ в dict, который имеет значение в виде списка из функции longest_subsequence.

from copy import deepcopy
def longest_subsequence(dict_elent,subsequence_dict):
    """

    :param dict_elent: Dictionary element to which the longest list last element to be compared
    :param subsequence_dict: 
    :return:  List 
    """
    x=subsequence_dict.values()
    sorted_list = sorted(x, reverse=True)
    flag=False
    for sublist in sorted_list:
        if sublist[-1]<dict_elent:
            sublist.append(dict_elent)
            flag=True
            break
    if flag==True:
        return  sublist
    else:
        return [dict_elent]


def main(d,subsequence_dict):
    for i in range(len(d)):
        if i==0 :
            subsequence_dict[i]=[d[i]]
        else:
            subsequence_dict.update({i: longest_subsequence(d[i],subsequence_dict)})

if __name__ == '__main__':
    d=[15,27,14,38,26,55,46,65,85]
    subsequence_dict={}
    main(d,subsequence_dict)
    print(subsequence_dict)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...