2012-01-09 11 views

Respuesta

34

Aplicar el corte en lonchas:

a[0:0] = k 

o hacerlo manualmente:

a = k + a 

El primer enfoque siguen siendo los mismos para su inserción en cualquier lugar, es decir, a[n:n] = k insertaría k en la posición n, pero el el segundo enfoque no sería el mismo, que será

a = a[:n] + k + a[n:] 
+1

Wow! Déjame intentar asimilar eso. – canadadry

+1

Elegí tu solución de corte. Gracias. – canadadry

2
>>> k + a 
['nice', '-n', '10', 'foo.py'] 
4

Uso lista de concatenación:

a = k + a 
10

en lugar de:

>>> a.insert(0, k) 

uso:

>>> k.extend(a) 
>>> k 
['nice', '-n', '10', 'foo.py'] 

esto actualiza la "k" lista "en su lugar" en lugar de crear una copia .

la lista concatenación (k + a) creará una copia.

la opción de corte (a [0: 0] = k) también se actualizará "en su lugar", pero en mi humilde opinión es más difícil de leer.

+0

Eso anexaría a al final de k. a seguiría siendo el mismo que antes. – 0605002

+1

@FlopCoder: es obvio que puede hacer a = k, el punto importante es conocer la concatenación in situ y de copia. –

+0

Prefiero mutar 'a' en su lugar. – canadadry

0
>>> a = ['foo.py'] 
>>> k = ['nice', '-n', '10'] 
>>> k.extend(a) 
>>> print k 
['nice', '-n', '10', 'foo.py'] 
0
list1=list(xrange(1,11)) # numbers 1 to 10 in list 
    list1[:0]=[0,0,0] # adds triple 0s to front of list 
    list1+=[11,12,13] #adds [11,12,13] to the end of list 
    print list1 
Cuestiones relacionadas