Python:跳过hashcheck中的每个第n个元素,条件不匹配?

时间:2013-09-16 06:30:15

标签: python python-2.7

所以我目前有一个脚本,它从文本文件的内容生成哈希值并将它们保存到字典中,然后进入第二个文本文件并从那里生成哈希值并将它们与所述字典进行比较。我正在尝试实现某种不完全匹配;例如,我想编写一些容差:例如,我想使得哈希中的每个第三个元素对匹配协议都不重要,所以如果存在不匹配,它将继续无阻碍地迭代。是否有可能做到这一点?

此外,这是一个单独的案例,是否可以确定条件不匹配?例如,如果存在不匹配,有几个元素仍然可以称为“匹配”,就像我想要某个位置的元音一样,但是哪个元音出现并不重要。

总之,我正在努力使我的脚本能够

,支票,无视,支票,支票,无视等

OR

检查,检查,条件不匹配?,检查,检查,条件不匹配?等等。

沿着哈希。这可行吗?

编辑:我认为它不是真正的哈希检查,而是更多的字符串比较。这是我试图调整的相关代码:

# hash table for finding hits
lookup = defaultdict(list)

# store sequence hashes in hash table
for i in xrange(len(file1) - hashlen + 1):
    key = file1[i:i+hashlen]
    lookup[key].append(i)

# look up hashes in hash table
hits = []
for i in xrange(len(file2) - hashlen + 1):
    key = file2[i:i+hashlen]

    # store hits to hits list
    for hit in lookup.get(key, []):
        hits.append((i, hit))

其中hashlen是我想要生成的哈希的长度(因此缓冲区因此我不会离开文件的末尾。

1 个答案:

答案 0 :(得分:0)

如评论所述,哈希没有秩序。您可以考虑使用OrderedDict。

但也许这段代码可以帮助你。

skip_rate = 3

for index, (key, value) in enumerate(your_hash.items()):
    if index % skip_rate != 0:
        do_something(key, value)