2014-06-08 7 views
0

J'ai une liste dont j'ai besoin d'extraire, via 'filter', certaines valeurs correspondantes. Le problème est que la méthode 'append' semble créer un tableau tout en ajoutant les valeurs correspondantes. Comment puis-je changer ce comportement?Comportement étrange dans l'annexe

Mon code:

v_Files = ['aaa.mp3', 'hhh.mp4', 'jjj.txt', 'uuu.xls', 'ujh.mp3', 'hun.m4p'] 
print("Files list: %s") %(v_Files) 
v_NewFiles = (filter(lambda element: 'mp3' in element, v_Files)) 
v_NewFiles.append(filter(lambda element: 'mp4' in element, v_Files)) 
v_NewFiles.append(filter(lambda element: 'm4p' in element, v_Files)) 
print("New files list: %s") %(v_NewFiles) 

Et la sortie:

Files list: ['aaa.mp3', 'hhh.mp4', 'jjj.txt', 'uuu.xls', 'ujh.mp3', 'hun.m4p'] 
New files list: ['aaa.mp3', 'ujh.mp3', ['hhh.mp4'], ['hun.m4p']] 

Comme on le voit, la nouvelle liste de la méthode 'append' est devenu un gâchis.

Une rétroaction serait appréciée. Merci.

+0

Au moins le soin de marquer la langue dans laquelle vous êtes en train de coder. – Raj

+0

J'ai à peu près abandonné les balises, car à peu près toutes les balises semblent nécessiter 1500 rep. Je vais m'assurer d'inclure Python dans le futur. –

Répondre

0

J'ai trouvé la réponse. Semble dans ma poussée pour aller au-delà du débutant, j'ai oublié quelques choses de base. J'ai trouvé this. Il semble que j'ai oublié 'étendre'. L'utilisation de 'extend' au lieu de 'append' a permis de résoudre mon problème.