以下哪个操作更快?在
使用for循环:
OrgIdChoices = []
Orgid_used_choices = [(choice["organization_id"])for choice in list(Organization.objects.all().values("organization_id"))] #Gets used ID's
OrgIdAvailChoices = [ "%c%c" % (x, y) for x in range(ord('A'), ord('Z')+1) for y in range(ord('A'), ord('Z')+1)] #Gets available ID's
for i in OrgIdAvailChoices:
if not i in Orgid_used_choices:
OrgIdChoices.append((i,i)) #Generates OrgIdAvailChoices which are not in Orgid_used_choices
或使用设置操作:
^{pr2}$
看看QuerySet API documentation,更准确地说是}部分。当然,这将比}方法。在
values_list
部分(带有flat=True
)和{values
更快,提取所需字段并转换为list
或{之后,使用查询集生成集合}的简单方法应该比您建议的方法快得多。在
OrgIdAvailChoices
和{或者,受Pannu的评论启发,使用
itertools
的方法:说实话,我不确定
QuerySet
是否真的是一个集合,也就是说,如果在其中搜索是对数的,但根据我的经验,正确使用Django的ORM(如我的答案开头所述)将给您带来最大的加速。在相关问题 更多 >
编程相关推荐