我有两个变量:
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))
两个元素永远不会相同,结果是:
[]
我如何比较它们?
谢谢
答案 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