字典的key一般只需要能hash就可以。列表是动态变化的,hash不能。如果是tuple就行的。
因为列表是可变对象,不能作为字典的key。但是你的代码中将两个变量a,n用逗号隔开作为字典的key,这个时候会将这两个变量收集到元组,整体作为字典的key,所以不会报错,类似于:
>>> d = {}
>>> d[2,3]=0
>>> d
{(2, 3): 0}
不知道你这个问题是否已经解决, 如果还没有解决的话:有帮助的话,请点采纳该答案~
>>>def demo(a,b,c=1): # c是默认值参数
print(a,b,c)
>>>demo(1,2)
out:1,2,1
>>>demo(1,2,3)
out:1,2,3
####多次调用函数并且不为默认值参数传递值时,默认值参数只在定义时进行一次解释和初始化,对于列表、字典这样可变类型的默认值参数,这一点可能会导致很严重的逻辑错误。
>>>def demo(newitem, old_list=[]):
old_list.append(newitem)
print(old_list)
>>>demo('5', [1, 2, 3, 4])
out:[1,2,3,4,'5']
>>>demo('aaa', ['a', 'b'])
out:['a','b','aaa']
>>>demo('a')
out:['a']
>>>demo('b')
out['a','b']