Obtenir des <générateur de l'objet <genexpr>

J'ai 2 listes:

first_lst = [('-2.50', 0.49, 0.52), ('-2.00', 0.52, 0.50)]
second_lst = [('-2.50', '1.91', '2.03'), ('-2.00', '1.83', '2.08')]

Je veux faire le calcul suivant:

Multiplier 0.49 par 1.91 (les valeurs correspondantes de first_lst et second_lst), et de multiplier 0.52 par 2.03 (valeurs correspondantes aussi). Je veux faire qu'à la condition que les valeurs à la position 0 dans chaque tuple est idential donc -2.50 == -2.50 etc. De toute évidence, nous faisons le même calcul pour remaning tuples.

Mon code:

[((fir[0], float(fir[1])*float(sec[1]), float(fir[2])*float(sec[2])) for fir in first_lst) for sec in second_lst if fir[0] == sec[0]]

Génère cependant un certain objet:

[<generator object <genexpr> at 0x0223E2B0>]

Pouvez-vous m'aider à corriger le code?

Votre tuples ont désadaptation types de string et float. Est-ce intentionnel ou tout simplement une erreur? Votre LC serait un échec si vous avez comme votre tuples. Depuis float ne peut pas être multiplié à un string. Voir ma réponse à corriger cette erreur.
J'avais écrit ce code avant j'ai réalisé que j'avais besoin de convertir tout à flotteur. Va le modifier maintenant de ne pas confondre personne. Merci pour le tuyau.
Bien Ashwini la réponse de résoudre le problème. En général, lorsque vous utilisez des interprétations de la liste, vous devez transtypage/stocker le résultat final dans une liste ou un tuple.

OriginalL'auteur nutship | 2013-05-04