Necesito agregar claves 'rev' y 'tta' y sus valores a la nueva lista. como puedo hacer eso?

Aquí está el dict:

vl = {0: {'art': 5612306, 'rev': 3.0, 'report_id': 751233}, 1: {'art': 567206, 'tta': 2.8, 'report_id': 751233}}

Lo que intento hacer y obtengo un error:

n_list = []
for elem in vl:
    n_list.append(vl[elem][1])
0
svp_ 15 jun. 2020 a las 16:03

3 respuestas

La mejor respuesta

Inténtalo así

vl = {0: {'art': 5612306, 'rev': 3.0, 'report_id': 751233}, 1: {'art': 567206, 'tta': 2.8, 'report_id': 751233}}

n_list = []
for elem in vl:
    val = vl[elem]
    if 'rev' in val:
        n_list.append(val['rev'])
    elif 'tta' in val:
        n_list.append(val['tta'])

print(n_list)
#[3.0, 2.8]
0
Thangarajan Pannerselvam 15 jun. 2020 a las 13:08

¿Es esto lo que quieres?

>>> vl = {0: {'art': 5612306, 'rev': 3.0, 'report_id': 751233}, 1: {'art': 567206, 'tta': 2.8, 'report_id': 751233}}
>>> [item.get('rev', item.get('tta')) for item in vl.values()]
[3.0, 2.8]
1
Balaji Ambresh 15 jun. 2020 a las 15:39

Puedes escribir así, pero este código solo es adecuado para esta estructura,

    n_list = []
    for elem in vl:
        n_list.append(vl[elem][tuple(vl[elem])[1]])
0
NANDHA KUMAR 15 jun. 2020 a las 13:14