我有一个场景可以根据密钥集来比较两个字典。 即Python比较具有相似和精确密钥的字典
TmpDict ={}
TmpDict2={}
for line in reader:
line = line.strip()
TmpArr=line.split('|')
TmpDict[TmpArr[2],TmpArr[3],TmpArr[11],TmpArr[12],TmpArr[13],TmpArr[14]]=line
for line in reader2:
line = line.strip()
TmpArr=line.split('|')
TmpDict2[TmpArr[2],TmpArr[3],TmpArr[11],TmpArr[12],TmpArr[13],TmpArr[14]]=line
这工作得很好用完全一样的按键比较两个库,但有一个宽容,我需要consider.That是.. TmpArr [12],TmpArr [14]是时间和时长需要宽容是checked.Please见下面的例子
实施例:
dict1={(111,12,23,12:22:30,12:23:34,64): 4|1994773966623|773966623|754146741|\N|359074037474030|413025600032728|}
dict2={(111,12,23,12:22:34,12:23:34,60) :4|1994773966623|773966623|754146741|\N|359074037474030|413025600032728|}
让我们假设我有两个字典与每个长度为1和公差是“4'seconds因此上述密钥必须被认为是匹配的线连虽然有差异时间和持续时间为4秒。 我知道字典搜索的关键是o(1)无论长度如何,我怎么能达到相同的性能这种情况。 谢谢
嗨@abilinx谢谢你的答案。我试过这个,但它不是o(1)...并且你能回答我这个问题....什么是性能散列python字典中的键值,因为现在在这种情况下我们有8 * linenumcount。 – 2014-10-10 11:36:49
我确定Python中的字典是一种散列表。散列函数总是以o(1)运行。从哈希表中检索值,如果我们有一个比数据大的哈希表,也是o(1)。因此,如果订单对您很重要,我建议您使用推荐的解决方案之一。但是,在实际情况下,整体表现比纯粹订单更重要。 – 2014-10-11 09:17:09