首页 > 解决方案 > 读取文件中 6 个唯一字符的块,将所有可能的 6 个字母的唯一字符块的字符串映射到唯一值

问题描述

给定一个file.txt包含数十亿字符的文件。

问题:

读取文件和文件中每个 6 个唯一字符的块,并将所有可能的 6 个字母的唯一字符块的字符串映射到唯一值。

这是我的代码

with open("file.txt") as file1:
    string = ''.join(file1.readlines())
    unique_dict = {}
    i=0
    while i <= len(string)-6:
        if len(set(string[i:i+6])) == len(string[i:i+6]):
            if string[i:i+6] in unique_dict.values():
                pass
            else:
                unique_dict[i] = string[i:i+6]
            i = i+5
        i += 1
    print(unique_dict)

file.txt包含

abcdefghijkabcdef

为了理解目的,我使用了最少的字符,而不是数十亿个字符。

这是输出:

{0: 'abcdef', 6: 'ghijka'}

有没有其他有效的方法可以在较少的比较中做到这一点?

标签: python-3.xfilefile-handling

解决方案


推荐阅读