我将列表的元素my_list
与:
my_combinison = itertools.product(*my_list)
所以它创建了一个2614234
组合元素的列表,我想验证组合列表中的每个元素是否都是对象中的作用域
list_contries_ok = list({'cities_scope': x, 'status': 1} for x in my_combinison if City.objects.only('country_id', 'city_scope').filter(country_id=CN, city_scope=','.join(x)).prefetch_related('country_id'))
list_contries_ko = list({'cities_scope': x, 'status': 0} for x in my_combinison if not City.objects.only('country_id', 'city_scope').filter(country_id=CN, city_scope=','.join(x)).prefetch_related('country_id'))
list_contries = list_contries_ok.append(list_contries_ko)
我的最后一个列表,我想有一个列表,迭代每个组合,并说如果它的状态1 or 0
。你知道吗
在执行过程中我花了好几分钟:S 有没有其他方法可以用这么长的列表来减少时间??你知道吗
现在在list_countries中,您将拥有list_countries_ko,而无需对其进行迭代。你知道吗
在
my_combinison
上进行两次传递时,只需进行一次:定义
predicate
;关键是前两个列表之间的唯一区别是long表达式是true(将status设置为1)还是false(将status设置为0)。您可以在一个过程中创建list_countries
,然后在必要时将其拆分为两个单独的列表(这应该快得多,因为您不再运行复杂的 首先查询每个项目。)相关问题 更多 >
编程相关推荐