我目前在寻找一种有效的方法来比较附加到列表中的字符串元素的一部分与另一个字符串元素。当前的代码计算非常耗时(第一个列表中有480万个元素,第二个列表中有5000个元素,需要1小时)。
我需要做的是:如果第一个字符串元素的前8个字符等于完整的第二个元素,则使用第一个元素更新第三个列表。一旦找到,我们测试第一个列表的另一个元素。
以下是代码:
for first_element in first_List :
for second_element in second_List:
if first_element[:8] == second_element :
third_List.append(first_element)
break
我知道那些循环不是处理非常大的列表的最佳方式。if测试的数量确实非常庞大。 我想知道有没有高效的方法可以解决这个问题。
我认为使用集合的交集可能行不通,因为我需要将第一个元素的一部分与完整的第一个元素进行比较,并且我需要将完整的第一个元素复制到第三个列表中。
如果您有一些建议或想法,请告诉我好吗?
if first_element[:8] in second_sorted_List
跳过第二个循环。 - Jan Kuiken