12
votes

Compréhension de la liste pour extraire une liste de tuples du dictionnaire

J'aimerais utiliser la compréhension de la liste sur la liste suivante;

movie_tuples = [x for ('title','year') in movie_dicts]
print movie_tuples


0 commentaires

4 Réponses :


23
votes
import operator
fields = operator.itemgetter('title','year')
title_year = [fields(i) for i in movie_dicts]

2 commentaires

En fait, les crochets sont nécessaires à l'intérieur des LCS: P Vous pouvez les laisser sortir dans des missions, leur retour, des déclarations de rendement (à peu près partout, ce sont tout ce que je peux penser en ce moment).


Si vous utilisez de l'articleGetter, vous pouvez également utiliser simplement la carte Carte (champs, film_dict) au lieu du LC



2
votes
xs = []
for target in expr2:
    xs.append(expr)

0 commentaires

3
votes

Cette version a un minimum de vous répéter:

>>> fields = "title year".split()
>>> movie_tuples = [tuple(map(d.get,fields)) for d in movie_dicts]


0 commentaires

0
votes

Si vous n'avez pas à utiliser une compréhension de la liste, vous pouvez toujours faire:

list(d.iteritems())


0 commentaires