Pregunta Cómo agregar varios elementos en una línea en Python


Yo tengo:

count = 0
i = 0
while count < len(mylist):
    if mylist[i + 1] == mylist[i + 13] and mylist[i + 2] == mylist[i + 14]:
        print mylist[i + 1], mylist[i + 2]
    newlist.append(mylist[i + 1])
    newlist.append(mylist[i + 2])
    newlist.append(mylist[i + 7])
    newlist.append(mylist[i + 8])
    newlist.append(mylist[i + 9])
    newlist.append(mylist[i + 10])
    newlist.append(mylist[i + 13])
    newlist.append(mylist[i + 14])
    newlist.append(mylist[i + 19])
    newlist.append(mylist[i + 20])
    newlist.append(mylist[i + 21])
    newlist.append(mylist[i + 22])
    count = count + 1
    i = i + 12

Yo quería hacer el newlist.append() declaraciones en algunas declaraciones.


74
2018-05-18 06:41


origen


Respuestas:


No. El método para agregar una secuencia completa es list.extend().

>>> L = [1, 2]
>>> L.extend((3, 4, 5))
>>> L
[1, 2, 3, 4, 5]

171
2018-05-18 06:43



No.

Antes que nada, append es una función, entonces no puedes escribir append[i+1:i+4] porque estás tratando de obtener una parte de una cosa que no es una secuencia. (No se puede obtener un elemento de esto tampoco: append[i+1] está mal por la misma razón.) Cuando llamas a una función, el argumento entra paréntesis, es decir, los redondos: ().

Segundo, lo que intenta hacer es "tomar una secuencia y poner cada elemento en ella al final de esta otra secuencia, en el orden original". Eso es deletreado extend. append es "tomar esto, y ponerlo al final de la lista, como un solo artículo, incluso si también es una lista". (Recuerde que una lista es un tipo de secuencia).

Pero luego, debes ser consciente de que i+1:i+4 es una construcción especial que aparece solo entre corchetes (para obtener una porción de una secuencia) y llaves (para crear un dict objeto). No puedes pasarlo a una función. Entonces no puedes extend con ese. Necesita hacer una secuencia de esos valores, y la forma natural de hacerlo es con el range función.


5
2018-05-18 07:11



También podrías:

newlist += mylist[i:i+22]

3
2018-02-28 00:16