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
Quería convertir las newlist.append()
declaraciones en algunas declaraciones.
[]
lugar de()
. Publique código de trabajo real.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]
fuente
list.extend()
debe ser iterable.No.
En primer lugar,
append
es una función, por lo que no puede escribirappend[i+1:i+4]
porque está tratando de obtener una porción de algo que no es una secuencia. (No puede obtener un elemento de la misma, ya sea:append[i+1]
está mal por la misma razón.) Cuando se llama a una función, el argumento va en paréntesis , es decir, los redondos:()
.En segundo lugar, lo que está intentando hacer es "tomar una secuencia y poner cada elemento en ella al final de esta otra secuencia, en el orden original". Eso está escrito
extend
.append
es "tomar esta cosa y ponerla al final de la lista, como un solo elemento , incluso si también es una lista ". (Recuerde que una lista es una especie de secuencia).Pero luego, debe tener en cuenta que
i+1:i+4
es una construcción especial que aparece solo entre corchetes (para obtener un corte de una secuencia) y llaves (para crear undict
objeto). No puede pasarlo a una función. Entonces no puedesextend
con eso. Necesita hacer una secuencia de esos valores, y la forma natural de hacerlo es con larange
función.fuente
También podrías:
newlist += mylist[i:i+22]
fuente
Utilizar esta :
#Inputs L1 = [1, 2] L2 = [3,4,5] #Code L1+L2 #Output [1, 2, 3, 4, 5]
Al usar el operador (+), puede omitir los múltiples operadores de agregar y extender en una sola línea de código y esto es válido para más de dos de las listas de L1 + L2 + L3 + L4 ... etc.
Feliz aprendizaje...:)
fuente
mylist = [1,2,3] def multiple_appends(listname, *element): listname.extend(element) multiple_appends(mylist, 4, 5, "string", False) print(mylist)
SALIDA:
[1, 2, 3, 4, 5, 'string', False]
fuente
utilizar para bucle. Me gusta esto:
for x in [1,2,7,8,9,10,13,14,19,20,21,22]: new_list.append(my_list[i + x])
fuente