【发布时间】:2023-02-25 03:35:20
【问题描述】:
我有一个字符串列表:
my_list = 'AAA AAA BBB BBB DDD DDD DDA'.split()
my_list
['AAA', 'AAA', 'BBB', 'BBB', 'DDD', 'DDD', 'DDA']
我需要计算列表中出现的每个元素。但是,如果两个字符串有一个不匹配,我们会把它们算作同一个字符串,然后进行计数。
我主要是用下面的脚本来统计。
my_list.count('AAA')
但是,不确定如何实现不匹配部分。我正在考虑运行两个for loops,比较两个字符串,然后递增计数。它将是 O(n^2)。
期望的输出
AAA 2
BBB 2
DDD 3
DDA 3
获得所需输出的理想方式是什么?任何建议,将不胜感激。谢谢!
【问题讨论】:
-
如果还有一个与“DDA”和“AAA”相差一个错误的“DAA”怎么办?
-
我肯定会在您的基本单词列表中以
collections.Counter()开头。那应该减少我担心会在一些丑陋的 On2 计算中崩溃的剩余测试 -
谷歌“编辑距离”找到计算字符串之间差异数量的算法。
-
嗨@MichaelButscher,你是对的。然后他们的数量会增加。