Python 比较字典键中的元组元素

Python 比较字典键中的元组元素,python,Python,我有一本字典,字典的关键是元组。我想通过比较元组中的所有元素来比较字典中的所有键,从而得到哈明距离 我的字典如下: dic={(1,0,1,1,0,0,1,1,0,1):8, (1,1,0,1,0,1,1,1,0,0):48, ....} 我曾尝试: haming_dist = [[0]*(len(dic)) for i in range(len(dic))] for i in range(len(dic)): for j in range(i+1,len(dic)):

我有一本字典,字典的关键是元组。我想通过比较元组中的所有元素来比较字典中的所有键,从而得到哈明距离

我的字典如下:

dic={(1,0,1,1,0,0,1,1,0,1):8, (1,1,0,1,0,1,1,1,0,0):48, ....}
我曾尝试:

haming_dist = [[0]*(len(dic)) for i in range(len(dic))]
for i in range(len(dic)):
    for j in range(i+1,len(dic)):
        count=0
        for k in range(10):
            if dic[i][k] != dic[j][k]:
                count=count+1
        haming_dist[i][j]=count

但它不起作用。我也试过写
列表(dic[I])[k]
元组(dic[I])[k]
元组(dic[I])
,但都没用。正确的方法是什么?

您的代码有点混乱。您正在尝试获取dict的
i
th和
j
th键,但您无法做到这一点-字典没有排序。您可以做的是将dict的键作为一个列表,然后遍历它。试试这个:

keys = list(dic)

for i in range(len(keys)):
    for j in range(i+1, len(keys)):
        count = 0
        for k in range(10):
            if keys[i][k] != keys[j][k]:
                count += 1
        print "Distance from %s to %s is %d" % (keys[i], keys[j], count)

你想做什么,数一数每个唯一的元组有多少个?或者只计算唯一元组的数量?我想通过计算元组中非相似元素的数量来计算每个键与另一个键之间的距离。元组(1,0,0)和(1,1,1)之间的距离是2。您希望如何存储它?我想象在一个dict中,那么dict的键是什么?键有不同的长度吗?实际上我想计算这些键之间的哈明距离,所有键的长度都相同。