how to make an extension of values in a list without modifying the other python

0

The problem I have is that in a list that believes a merger of two lists with dictionaries, I repeat the records then what I'm doing is that I verify which are repeated to put the missing values in the first in the first record, but when doing this when in the list there are more values with the same values in the second position they are added to all.

 import json 

print("Obteniendo información")
#obteniendo Valores de los Json
obtenerProfesores = json.loads(open("profesores.json").read())
obtenerAsignaturas = json.loads(open("asignaturas.json").read())

def imprimir(listas):
    for x in range(len(listas)):
        print (listas[x])

dataFusion = []
a = 0
# se obtienen los diccionarios de los json y se guardan en una lista de fusion
for dict in obtenerProfesores:
    for dict2 in obtenerAsignaturas:
        nomValue = dict['nombre']
        asigValue = dict['asignaturas']
        dispValue = dict['disponibilidad']
        hrsValue = dict['horas']
        idasigValue = dict2['id']
        nomasigValue =  dict2['nombre']
        hrsemValue = dict2['horas_semana']
        if len(dict['asignaturas']) == 1:
            if dict['asignaturas'][0] == dict2['nombre']:
                dataFusion.append([nomValue, idasigValue])
        if len(asigValue) > 1:       
            for e in dict['asignaturas']:
                if e == dict2['nombre']:
                    dataFusion.append([nomValue, idasigValue])
#aqui aparecen los datos duplicados pero con la parte de las asignaturas diferentes
imprimir(dataFusion)
print("------------------------------------------------------------------")

listaNueva = []
#Se intenta eliminar los datos repetidos
for i in range(1,len(dataFusion)):
    if( i < len(dataFusion)-1):
        x = dataFusion[i-1]
        x1 = dataFusion[i]
        x2 = dataFusion[i+1]
        if( x[0] == x1[0]):
            x[1].extend(x1[1])
            listaNueva.append(x)
        else:
            if(x[0] != x1[0] and  x2[0] == x1[0]):
                next
            else:
                listaNueva.append(x1)
    else:
        x = dataFusion[i-1]
        x1 = dataFusion[i]
        if( x[0] == x1.keys()[0]):
            x[1].extend(x1[1])
            listaNueva.append(x)
        else:
            listaNueva.append(x1)

        #else:
         #   listaNueva.append(x)

imprimir(listaNueva)

the jsons are the following asignaturas.json

[
{
    "id":["Qu1","Qui2","Qui3"],
    "nombre":"Quimica",
    "grado":1,
    "horas_semana":4,
    "grupo": [1,2,3]
},
{
    "id":["ALi1","ALi2","ALi3"],
    "nombre":"Algebra lineal",
    "grado":1,
    "horas_semana":5,
    "grupo": [1,2,3]
},
{
    "id":["FC1","FC2","FC3"],
    "nombre":"Fundamentos de computo",
    "grado":1,
    "horas_semana":4,
    "grupo": [1,2,3]
},
{
    "id":["AL1","AL2","AL3"],
    "nombre":"Algoritmos",
    "grado":1,
    "horas_semana":7,
    "grupo": [1,2,3]
},
{
    "id":["MD1","MD2","MD3"],
    "nombre":"Matematicas discretas",
    "grado":1,
    "horas_semana":6,
    "grupo": [1,2,3]
},
{
    "id":["EO1","EO2","EO3"],
    "nombre":"Expresion oral y escrita",
    "grado":1,
    "horas_semana":4,
    "grupo": [1,2,3]
},

{
    "id":["CI1","CI2"],
    "nombre":"Calculo integral",
    "grado":4,
    "horas_semana":6,
    "grupo": [4,5]
},
{
    "id":["ISA1","ISA2"],
    "nombre":"Ing Sw Asistido por Computadora",
    "grado":4,
    "horas_semana":6,
    "grupo": [4,5]
},
{
    "id":["PW1","PW2"],
    "nombre":"Programacion web",
    "grado":4,
    "horas_semana":7,
    "grupo": [4,5]
},
{
    "id":["IRS1","IRS2"],
    "nombre":"Ingenieria de requerimientos de software",
    "grado":4,
    "horas_semana":6,
    "grupo": [4,5]
},
{
    "id":["Re1","Re2"],
    "nombre":"Redes",
    "grado":4,
    "horas_semana":6,
    "grupo": [4,5]
},
{
    "id":["IE1","IE2","IE3"],
    "nombre":"Ingenieria economica",
    "grado":7,
    "horas_semana":4,
    "grupo": [6,7,8]
},
{
    "id":["CI1","CI2","CI3"],
    "nombre":"Compiladores e interpretes",
    "grado":7,
    "horas_semana":5,
    "grupo": [6,7,8]
},
{
    "id":["MS1","MS2","MS3"],
    "nombre":"Mantenimiento de sw",
    "grado":7,
    "horas_semana":4,
    "grupo": [6,7,8]
},
{
    "id":["CS1","CS2","CS3"],
    "nombre":"Calidad de sw",
    "grado":7,
    "horas_semana":4,
    "grupo": [6,7,8]
},
{
    "id":["RA1","RA2","RA3"],
    "nombre":"Realidad aumentada",
    "grado":7,
    "horas_semana":4,
    "grupo": [6,7,8]
}]

Profesores.json

'

[{  
    "id": "1",
    "profesor":"PA",
    "nombre":"christian baladimir",
    "asignaturas":["Redes", "Algebra lineal"],
    "horas": "15",
    "disponibilidad":
        [[0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":2,
    "profesor":"PA",
    "nombre":"claudia",
    "asignaturas":["Expresion oral y escrita"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 1, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":3,
    "profesor":"PA",
    "nombre":"Maria Guadalupe",
    "asignaturas":["Quimica", "Calculo integral"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":4,
    "profesor":"PA",
    "nombre":"Joel",
    "asignaturas":["Algebra lineal", "Fundamentos de computo"],
    "horas":15,
    "disponibilidad":
        [[0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":5,
    "profesor":"PA",
    "nombre":"Yolanda",
    "asignaturas":["Algebra lineal"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":6,
    "profesor":"PA",
    "nombre":"J Bautista",
    "asignaturas":["Matematicas discretas"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":7,
    "profesor":"PA",
    "nombre":"Octavio",
    "asignaturas":["Programacion Web", "Mantenimiento"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":8,
    "profesor":"PA",
    "nombre":"Iracema",
    "asignaturas":["Ingenieria economica"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":9,
    "profesor":"PA",
    "nombre":"Hugo",
    "asignaturas":["Algoritmos", "Ing Sw Asistido por Computadora", "Mantenimiento"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":10,
    "profesor":"PA",
    "nombre":"Paul",
    "asignaturas":["Calidad de sw","Ing Sw Asistido por Computadora"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":11,
    "profesor":"PTC",
    "nombre":"Liliana",
    "asignaturas":["Ing de requerimientos de sw", "Estancias"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":12,
    "profesor":"PTC",
    "nombre":"Oscar",
    "asignaturas":["Algoritmos", "Estancias"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":13,
    "profesor":"PTC",
    "nombre":"Felix",
    "asignaturas":["Calculo", "Realidad aumentada"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
},
{
    "id":14,
    "profesor":"PTC",
    "nombre":"Hector",
    "asignaturas":["Compiladores e interpretes"],
    "horas":15,
    "disponibilidad":
        [[1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0],
        [0, 0, 0, 0, 0]]
}
]

The result it gives is the following

Obteniendo información
['christian baladimir', ['ALi1', 'ALi2', 'ALi3']]
['christian baladimir', ['Re1', 'Re2']]
['claudia', ['EO1', 'EO2', 'EO3']]
['Maria Guadalupe', ['Qu1', 'Qui2', 'Qui3']]
['Maria Guadalupe', ['CI1', 'CI2']]
['Joel', ['ALi1', 'ALi2', 'ALi3']]
['Joel', ['FC1', 'FC2', 'FC3']]
['Yolanda', ['ALi1', 'ALi2', 'ALi3']]
['J Bautista', ['MD1', 'MD2', 'MD3']]
['Iracema', ['IE1', 'IE2', 'IE3']]
['Hugo', ['AL1', 'AL2', 'AL3']]
['Hugo', ['ISA1', 'ISA2']]
['Paul', ['ISA1', 'ISA2']]
['Paul', ['CS1', 'CS2', 'CS3']]
['Oscar', ['AL1', 'AL2', 'AL3']]
['Felix', ['RA1', 'RA2', 'RA3']]
['Hector', ['CI1', 'CI2', 'CI3']]
------------------------------------------------------------------
['christian baladimir', ['ALi1', 'ALi2', 'ALi3', 'Re1', 'Re2', 'FC1', 'FC2', 'FC3']]
['claudia', ['EO1', 'EO2', 'EO3']]
['Maria Guadalupe', ['Qu1', 'Qui2', 'Qui3', 'CI1', 'CI2']]
['Joel', ['ALi1', 'ALi2', 'ALi3', 'Re1', 'Re2', 'FC1', 'FC2', 'FC3']]
['Yolanda', ['ALi1', 'ALi2', 'ALi3', 'Re1', 'Re2', 'FC1', 'FC2', 'FC3']]
['J Bautista', ['MD1', 'MD2', 'MD3']]
['Iracema', ['IE1', 'IE2', 'IE3']]
['Hugo', ['AL1', 'AL2', 'AL3', 'ISA1', 'ISA2']]
['Paul', ['ISA1', 'ISA2', 'CS1', 'CS2', 'CS3']]
['Oscar', ['AL1', 'AL2', 'AL3', 'ISA1', 'ISA2']]
['Felix', ['RA1', 'RA2', 'RA3']]
['Hector', ['CI1', 'CI2', 'CI3']]

and what is expected is that it be

 ['christian baladimir', ['ALi1', 'ALi2', 'ALi3', 'Re1', 'Re2']]
    ['claudia', ['EO1', 'EO2', 'EO3']]
    ['Maria Guadalupe', ['Qu1', 'Qui2', 'Qui3', 'CI1', 'CI2']]
    ['Joel', ['ALi1', 'ALi2', 'ALi3', 'FC1', 'FC2', 'FC3']]
    ['Yolanda', ['ALi1', 'ALi2', 'ALi3']]
    ['J Bautista', ['MD1', 'MD2', 'MD3']]
    ['Iracema', ['IE1', 'IE2', 'IE3']]
    ['Hugo', ['AL1', 'AL2', 'AL3', 'ISA1', 'ISA2']]
    ['Paul', ['ISA1', 'ISA2', 'CS1', 'CS2', 'CS3']]
    ['Oscar', ['AL1', 'AL2', 'AL3']]
    ['Felix', ['RA1', 'RA2', 'RA3']]
    ['Hector', ['CI1', 'CI2', 'CI3']]
    
asked by Kevin Valencia Cruz 30.11.2018 в 20:59
source

0 answers