1

リストの要素を次のように組み合わせ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)

私の最後のリストでは、すべてのコンビナゾンを反復し、その status かどうかを言うリストが必要です1 or 0

実行に数分かかりました:Sリストのこの巨大な長さで時間を最小限に抑える他の明確な方法はありますか??

4

2 に答える 2

0
list_countries_ok = [ x and list_countries.remove(x) for x in list_countries if x['status'] ]

これで list_countries に、反復処理なしで list_countries_ko ができます。

于 2013-11-01T18:46:21.397 に答える