我有一张房屋清单:
list1 = [home1, home2, home3, home4]
我还有另外一份具体房屋的清单:
list2 = [ home6, home7, home8, home10]
每个家庭都有一个字段date
。我想根据情况将List2
插入list1
home.date
例如,如果home7.date < home1.date
,那么home7
将插入list1
之前的home1
我试着使用两个for循环,但它似乎非常慢,而且有许多计算是由CPU完成的
for el in list1:
for elt2 in list2:
if el.date > elt2.date:
list1.insert((list1.index(el)),elt2)
PS:有些日期没有设置,因此它们有一个None
值,我不想更改list1
中对应的home
的索引
有什么想法吗?你知道吗
第一件事:在迭代时修改列表(或dict、set等)通常是一个非常糟糕的主意。你知道吗
在您的例子中,最简单的解决方案可能是先合并两个列表,然后使用
key
回调对列表进行排序:要返回新的排序列表,应使用sorted()内置函数:
编辑时间:
相关问题 更多 >
编程相关推荐