所以问题就在这里,我导入了一个6000到12000个密钥的字典。然后使用嵌套for算法将它们分组到另一个字典内的列表中。我使用以下代码检查密钥是否在字典中:
for key in range(sizeOfOriginalKeys):
if key in key_data:
正如您可能想象的那样,由于排序算法相当复杂,因此这是永远的。我想只遍历' key_data'中的密钥,而不进行1000到11999次检查,如果字典中有该密钥。有没有办法列出当前的密钥?然后迭代它们?或者至少比我目前正在做的更有效率?
凯文的建议后的现行守则:
for key in key_data:
currentKey = key_data[key].name
if key_data[currentKey].prefList[currentPref] == currentGroup
key_data[currentKey].currentScore = getDotProduct()
group_data[currentGroup].keyList.append(key_data[currentKey])
group_data[currentGroup].sortKeys()
del key_data[currentKey]
键名是整数。 在排序算法结束时,我删除了密钥,如果它已被分类到一个组中。 现在我收到一个错误:字典在迭代期间改变了大小。
思考?
答案 0 :(得分:3)
你太努力了:
for key in key_data:
答案 1 :(得分:1)
你可以尝试
for key,value in key_data.items() :
print key
print value
您可以在不调用key_data [key]
的情况下访问值