ys的外部字典与相同内部字典。您首先制作了一本dict.fromkeys(y,0)
的字典,然后您将该字典与所有关键字相关联:dict.fromkeys(x,...)
。
构建所需的字典的方式是例如字典解析:
zx = {k: dict.fromkeys(y,0) for k in x}
虽然这看起来完全一样它不是:在这里,我们会为每k
在x
评估dict.fromkeys(y,0)
再次。因此,所构造的字典将他所有的相当于,但是不是相同的对象。
现在我们获得预期:
那是因为你与*相同*值相关联的所有键
>>> x=[1,2,3,4,5]
>>> y=[7,8,9,10,11]
>>> zx = {k: dict.fromkeys(y,0) for k in x}
>>> zx
{1: {8: 0, 9: 0, 10: 0, 11: 0, 7: 0}, 2: {8: 0, 9: 0, 10: 0, 11: 0, 7: 0}, 3: {8: 0, 9: 0, 10: 0, 11: 0, 7: 0}, 4: {8: 0, 9: 0, 10: 0, 11: 0, 7: 0}, 5: {8: 0, 9: 0, 10: 0, 11: 0, 7: 0}}
>>> zx[1][8]+=1
>>> zx
{1: {8: 1, 9: 0, 10: 0, 11: 0, 7: 0}, 2: {8: 0, 9: 0, 10: 0, 11: 0, 7: 0}, 3: {8: 0, 9: 0, 10: 0, 11: 0, 7: 0}, 4: {8: 0, 9: 0, 10: 0, 11: 0, 7: 0}, 5: {8: 0, 9: 0, 10: 0, 11: 0, 7: 0}}
。 –