Come faccio a inserire un elenco a fronte di un’altra lista?

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

Voglio elencare k per essere sullo stesso livello come foo.py, piuttosto che un sottoelenco.

InformationsquelleAutor canadadry | 2012-01-09

 

6 Replies
  1. 39

    Applicare taglio:

    a[0:0] = k

    O farlo manualmente:

    a = k + a

    Il primo approccio rimane lo stesso per l’inserimento in qualsiasi luogo, cioè a[n:n] = k
    inserire k alla posizione n, ma il secondo approccio non sarebbe la stessa, che sarà

    a = a[:n] + k + a[n:]
    • Wow! Mi permetta di provare a curarsi di che.
    • Ho scelto la tua affettare soluzione. Grazie.
  2. 13

    invece di:

    >>> a.insert(0, k)

    uso:

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

    questo aggiorna la “k” elenco “a posto” invece di creare una copia.

    elenco di concatenazione (k + i) creare una copia.

    il taglio opzione (a[0:0] = k) si aggiorna anche in “a posto”, ma IMHO è più difficile da leggere.

    • Che vorresti aggiungere a di k. un rimarrebbe come prima.
    • è ovvio che si può fare un=k, il punto importante è conoscere e copia di concatenazione.
    • Io preferisco mutare a in luogo.
    • Ami: si può scegliere qualsiasi forma, l’importante è che ora hai le conoscenze per prendere una decisione informata.
    • Sì. La ringrazio molto per il vostro aiuto.
  3. 0
    >>> a = ['foo.py']
    >>> k = ['nice', '-n', '10']
    >>> k.extend(a)
    >>> print k
    ['nice', '-n', '10', 'foo.py']
  4. 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

Lascia un commento