2010-07-25 9 views
15

Avoir une liste comme ceci:préfixe Prepend à la liste des éléments avec la compréhension de la liste

['foo','spam','bar'] 

est-il possible, en utilisant la compréhension de la liste, pour obtenir cette liste comme résultat?

['foo','ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar'] 
+1

C'est une « compréhension de la liste », pas « la liste de compréhension »;) –

+3

« Append préfixe » est un oxymore, devrait être préfixer/préfixe – jamylak

+0

Geez vous les gars sont très dures –

Répondre

31
In [67]: alist = ['foo','spam', 'bar'] 

In [70]: [prefix+elt for elt in alist for prefix in ('','ok.') ] 
Out[70]: ['foo', 'ok.foo', 'spam', 'ok.spam', 'bar', 'ok.bar'] 
+0

Merci pour cela. J'ai utilisé exactement la même idée pour remplir une liste avec des éléments de liste vides comme: * [[]] + [vide + [] pour char dans [[i] pour i dans la gamme (len (texte))] pour vide dans (char , [])] * qui se traduit par une liste similaire: * [[], [i], [], [o], [], [u], []] *. Donc, cela est utile pour plus de créer une liste de chaînes concaténées si quelqu'un est intéressé. –

1

Avec compréhensions liste, vous créez de nouvelles listes, pas insérer un élément dans une liste existante (qui peuvent être pertinentes sur des ensembles de données très grandes)

Pourquoi faut-il être une liste compréhension de toute façon? Ce n'est pas parce que Python les possède que la pratique du codage est mauvaise.