我有一个我正在使用的函数,我需要传递一个参数列表,但是,当我尝试传递列表时它会出错,因为它无法散列。
这里讨论的函数是Django Queryset上的values()方法,但我认为这是一个更普遍的python问题。
所以我有:
values_list = ['arg1', 'arg2', 'arg3']
models.MyModel.objects.values(values_list).all()
当我尝试运行代码时,这会给出错误unhashable type: 'list'
。
假设我无法改变values方法,如何以正常方式将此列表添加到参数列表中?
for arg in values_list:
queryset = MyModel.objects.values(arg)
答案 0 :(得分:8)
答案 1 :(得分:0)
你可以使用元组而不是列表吗?元组是可以清洗的。
答案 2 :(得分:0)
将values_list作为元组而不是列表是有意义的,但是如果你不能改变values方法,那么列表解包是最佳选择。