Python: extender una lista directamente da como resultado Ninguno, ¿por qué?

x=[1,2,3] x.extend('a') 

Salida:

 x is [1,2,3,'a'] 

Pero cuando hago lo siguiente:

 [1,2,3].extend('a') 

Salida:

 None 

¿Por qué extender el trabajo en una referencia de lista, pero no en una lista?

2ª Parte:

Encontré esto porque estaba tratando de agregar una listaB a una listaA mientras trataba de extender la lista C a la listaB.

 listA.append([listB[15:18].extend(listC[3:12])]) 

Suponiendo que las listas no pueden ser directamente agregadas / extendidas. ¿Cuál es la forma de trabajo más popular para resolver este problema?

list.extend modifica la lista en su lugar y no devuelve nada, lo que da como resultado None . En el segundo caso, es una lista temporal que se está extendiendo y desaparece inmediatamente después de esa línea, mientras que en el primer caso se puede hacer referencia a través de x .

para agregar una listaB a una listaA al intentar extender la lista C a la listaB.

En lugar de usar extend , tal vez quieras probar esto:

 listA.append(listB[15:18] + listC[3:12]) 

O hágalo en varias líneas simples con extend si desea modificar realmente listB o listC .

extend se extenderá lista a sí mismo. El tipo de retorno de ese método es None

Si desea union lista 2 y agregar esa lista a otra lista, debe usar otra forma de agregar.

 listB[15:18] = listC[3:12] listA.extend(listB)