将Django ValuesListQuerySet元素与List元素进行比较

时间:2015-09-03 15:11:50

标签: python django python-3.x

我有两个变量:

var1 ex: [6, 2, 4, 5] type: ValuesListQuerySet
var2 ex: ['4', '2'] type: List

我必须比较这两个变量的元素,结果应该是:

['4', '2']

我的代码:

idmatch = []
for r in var1:
    for k in var2:
        if k == r:
            print("here")
            idmatch.append(str(k))

两个元素永远不会相同,结果是:

[]

我如何比较它们?

谢谢

2 个答案:

答案 0 :(得分:2)

区别不在于查询集与列表,而是内容;一个有整数,另一个有字符串。

答案 1 :(得分:2)

您的ValuesListQuerySet包含整数,但您的列表包含字符串。

如果您不关心订单,最简单的解决方案是将两个变量转换为集合。

# convert var1 to a set of strings
var1 = set(str(x) for x in var1)
# convert var2 to a set
var2 = set(var2)
idmatch = var1 & var2