python-3.x - 读取文件中 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'}
有没有其他有效的方法可以在较少的比较中做到这一点?
解决方案
推荐阅读
- php - 如何修复 MessageFormatter 返回格式不正确的日期?
- virtual-machine - 通过 Softlayer API 创建 IBM VM 需要更长的时间
- css - Angular FlexLayout 将所有设备的选择元素和 fab-mini 对齐在同一行,但在边界上未对齐
- excel - 表格列的vba应用格式
- python - 聚类前的标准化
- c# - 在 azure 函数 c#.net 核心中检测图像倾斜角度并修复没有 system.drawing 库
- go - 关闭和发送到通道之间的竞争条件
- python - 我们可以根据python中的'id'过滤字典吗?
- go - 一个结构多个 json 表示
- android - react native 中的平滑闪屏过渡