2009-11-21 3 views
0
L = ['abc', 'ADB', 'aBe'] 

L[len(L):]=['a1', 'a2'] # append items at the end... 
L[-1:]=['a3', 'a4'] # append more items at the end... 

... fonctionne, mais 'a2' est manquant dans la sortie:à une liste Adjonction

['abc', 'ADB', 'aBe', 'append', 'a1', 'a3', 'a4'] 
+0

Pourquoi ne pas utiliser la append liste de python et d'étendre les fonctions. – MitMaro

Répondre

3

Je pense que le -1 pointe au dernier élément de la liste, qui est écrasée par « a3 ». Comme cela est décrit here, vous pouvez faire une

list.extend(['a3', 'a4']) 
+1

Belle prise. +1 - – MitMaro

1

Quel est le problème:

L.append('a1') 

ou

L += ['a1', 'a2'] 
+1

ajouter, mais j'apprends donc tester différentes méthodes; + crée une nouvelle liste donc c'est plus lent que de changer sur place. – 3zzy

+0

+ peut créer une nouvelle liste, mais + = telle que publiée par @Pynt ne fonctionne pas. – PaulMcG

1

pour annexer des éléments à une liste, vous pouvez utiliser +

L + ["a1","a2"] 
1

Votre 3ème mission est la valeur en remplacant « a2 ».

Peut-être que vous devriez utiliser une méthode plus simple:

L = ['abc', 'ADB', 'aBe'] 
L += ['a1', 'a2'] 
L += ['a3', 'a4'] 
Etc. 
3

Utilisez L.append (pour un seul élément) ou L.extend (pour une séquence) - il n'y a absolument pas d'appel pour jouer fantaisie « assigner-to trancher des "astuces" (surtout si vous ne les maîtrisez pas!). La tranche [-1:] signifie « dernier élément inclus partir » - donc, en attribuant à cette tranche, vous êtes évidemment « écraser » le dernier élément!

0

Utilisez la méthode extend

L = ['abc', 'ADB', 'aBe'] 
L.extend(['a1', 'a2']) 
L.extend(['a3', 'a4']) 
Questions connexes