¿Cómo insertar elementos de una lista en otra lista dependiendo del valor de la fecha?

Tengo una lista de casas:

list1 = [home1, home2, home3, home4] 

Y tengo otra lista de casas específicas:

 list2 = [ home6, home7, home8, home10] 

Cada casa tiene una date campo. Quiero insertar List2 en list1 dependiendo de home.date

Por ejemplo, si home7.date < home1.date , entonces home7 se insertará en la list1 antes de home1

Intenté usar dos para loops pero parece ser muy lento y la CPU realiza muchos cálculos.

  for el in list1: for elt2 in list2: if el.date > elt2.date: list1.insert((list1.index(el)),elt2) 

PD : algunas fechas no están establecidas, por lo que tienen un valor None y no quiero cambiar el índice de la home correspondiente en la list1

Algunas ideas ?

Lo primero es lo primero: modificar una lista (o dict, set, etc.) mientras se realiza una iteración es una idea muy mala.

En su caso, la solución más sencilla es probablemente fusionar las dos listas primero y luego ordenar la lista usando la callback key :

 list1.extend(list2) list1.sort(key=lambda x: x.date) 

Editado:

 list3 = (list1 + list2) list3.sort(key = lambda x: x.date) 

Para devolver una nueva lista ordenada, debe usar la función incorporada ordenada ():

 sorted_list = sorted(list1 + list2, key=lambda x: x.date, reverse=True)