如何在Python中加速对父字符串的许多短子字符串的操作

2024-06-16 15:36:33 发布

您现在位置:Python中文网/ 问答频道 /正文

在配置文件中出现了一个循环,它对父字符串的许多但很短的子字符串进行操作,我想通过避免复制来优化它。在运行实际操作之前,我确实需要对片进行一些string操作,例如strip等。你知道吗

我探索了memoryviews的切片,但似乎tobytes又创建了一个副本。我想不出一种方法来调用片上的字符串操作,而不调用memoryview片上的tobytes。有没有避免复制的纯Python方法?你知道吗

未优化的代码如下所示

 # parent_str is about 4GB
 hash_list = []
 for start,end in offset_list:
   segment = parent_str[start:end].strip().replace("%$@", "")
   hash_list.append(hash(segment))

Tags: 方法字符串string配置文件segmenthashstartlist
1条回答
网友
1楼 · 发布于 2024-06-16 15:36:33

您可以使用一个集合来存储子字符串,它将自动删除重复项

>>> string = "This is a string with duplicates with duplicates"
>>> substrings = set(string.split())
>>> substrings
{'This', 'duplicates', 'a', 'string', 'is', 'with'}
>>> substrings.add('hello')
>>> substrings.add('duplicates')
>>> substrings
{'This', 'duplicates', 'hello', 'a', 'string', 'is', 'with'}

相关问题 更多 >