Me gustaría usar la lista de comprensión en la siguiente lista;Comprensión de la lista para extraer una lista de tuplas del diccionario
movie_dicts = [{'title':'A Boy and His Dog', 'year':1975, 'rating':6.6},
{'title':'Ran', 'year':1985, 'rating': 8.3},
{'title':'True Grit', 'year':2010, 'rating':8.0},
{'title':'Scanners', 'year':1981, 'rating': 6.7}]
utilizando mis conocimientos de lista por comprensión y diccionarios, sé que
movie_titles = [x['title'] for x in movie_dicts]
print movie_titles
imprimirá una lista con los títulos de películas.
Para extrae una lista de (título, año) tuplas que he probado -
movie_tuples = [x for ('title','year') in movie_dicts]
print movie_tuples
y recibo el SyntaxError error: No se puede asignar a literal
estoy seguro sobre cómo buscar a los pares de dos (específica) de clave/valor utilizando la lista de comprensión (hacerlo generaría una tupla de forma automática?)
En realidad los soportes * * son necesarios dentro de los LC: P Puedes dejarlos fuera en asignaciones, declaraciones de retorno, rendimiento (prácticamente en cualquier otro lugar, eso es todo lo que puedo pensar en este momento). –
Si está utilizando itemgetter, también puede usar 'map (fields, movie_dict)' en lugar de LC –
@Jochen: he probado esto, está en lo cierto. D'oh! –