2010-10-23 10 views
3

J'ai une liste commeComment supprimer le dernier élément de chaque tuple dans une liste

alist = [[a,b,(1,2)], [a,b,(1,2)], [a,b,(1,2)]] 

Je veux supprimer le dernier élément de tous les éléments d'une liste. Donc, le résultat sera:

alist = [[a,b], [a,b], [a,b]] 

Y at-il un moyen rapide de faire cela?

+1

Quel tutoriel utilisez-vous pour apprendre Python? –

+0

quelle est cette addition absurde? que voulez-vous dire que cela ne fonctionne pas? Pourquoi publiez-vous un code à partir d'une réponse? – SilentGhost

+0

"Votre script fonctionne en shell python, mais ne fonctionne pas dans mon programme, je ne sais pas pourquoi"? Qu'est-ce que ça veut dire? –

Répondre

9

Vous pouvez utiliser la liste de compréhension pour créer une nouvelle liste qui supprime le dernier élément.

>>> alist = [[1,2,(3,4)],[5,6,(7,8)],[9,10,(11,12)]] 
>>> [x[:-1] for x in alist]  # <------------- 
[[1, 2], [5, 6], [9, 10]] 

Cependant, si vous voulez l'efficacité, vous pouvez modifier la liste en place:

>>> alist = [[1,2,(3,4)],[5,6,(7,8)],[9,10,(11,12)]] 
>>> for x in alist: del x[-1]  # <------------- 
... 
>>> alist 
[[1, 2], [5, 6], [9, 10]] 
+0

Battez-moi par 15 secondes. Je n'aurais pas dû perdre mon temps à me demander pourquoi la personne n'utilise pas un bon tutoriel Python. –

+0

J'ai senti l'envie d'enlever un peu de fouillis. Votre première réponse était à peu près parfaite. L'exemple détaillé pourrait être plus utile, mais, je pense que c'est plus clair avec deux lignes de distraction de moins à partir de cette ligne de code essentielle et limpide. –

+0

"si vous voulez de l'efficacité"? Comment est-ce plus efficace? Avez-vous des chiffres à l'appui de cette affirmation? –

0

Ce sont des choses Python de base. Vous devriez être en mesure de le faire après avoir lu le tutoriel Python

>>> alist = [[1,2,(3,4)],[5,6,(7,8)],[9,10,(11,12)]] 
>>> for li in alist: 
...  print li[0:2] 
... 
[1, 2] 
[5, 6] 
[9, 10] 
>>> 

Plus tard, vous pouvez aller à des choses comme intermédiaires de compréhension de la liste etc

Questions connexes