python - 在列表中查找公共字符串并显示它们
问题描述
我正在尝试创建一个函数 compare(lst1,lst2) 来比较列表中的每个元素并返回新列表中的每个常见元素并显示它的常见百分比。列表中的所有元素都将是字符串。例如函数应该返回:
lst1 = AAAAABBBBBCCCCCDDDD
lst2 = ABCABCABCABCABCABCA
common strand = AxxAxxxBxxxCxxCxxxx
similarity = 25%
列表中不相似的部分将简单地返回为 x。如果没有 python set和zip方法,我无法完成此功能。我不允许将它们用于此任务,我必须使用 while 和 for 循环来实现。请指导我如何实现这一目标。
解决方案
如果没有 python set 和 zip 方法,我无法完成此功能。我不允许将它们用于此任务,我必须使用 while 和 for 循环来实现。请指导我如何实现这一目标。
你有两个字符串A
和B
. 字符串是有序的字符序列。
假设两者A
和B
具有相同的长度(相同的字符数)。选择一些位置i < len(A), len(B)
(记住 Python 序列是 0 索引的)。您的问题陈述要求:
如果字符
i
inA
与字符i
in相同B
,则生成该字符否则,产生一些占位符来表示不匹配
你如何i
在某个字符串中找到第 th 个字符A
?看看 Python 的字符串方法。请记住:字符串是字符序列,因此 Python 字符串还实现了几个特定于序列的操作。
如果len(A) != len(B)
,您需要决定在将i
任一字符串中的第 th 个元素与小于 的字符串进行比较时该怎么做i
。您可能会认为将它们表示为 (2) 中的相同占位符。
如果你知道如何迭代 的结果zip
,你就会知道如何使用for
循环。您所需要的只是一种迭代索引序列的方法。查看语言内置函数。
最后,对于您的相似度度量:如果您比较n
了字符并发现N <= n
不匹配,您可以定义1 - (N / n)
为您的相似度度量。这适用于同样长的字符串(对于两个不同长度的字符串,您总是要计算相对于较长字符串的比例)。
推荐阅读
- reactjs - 在使用 useState 和 useEffect 在 react.js 中推送一个数组元素后,它在更新状态后无限循环。怎么解决?
- android - 使用 Jsoup 解析文本时如何获取要点?
- android - 没有 RecyclerView 的 Paging3
- javascript - 文档 addEventListener touchstart 在 Safari 控制台中没有任何响应
- php - 重写规则不提供 GET 参数
- javascript - 创建一个新的多字符脚本。但得到错误无法设置属性'innerhtml'为空
- oracle - oracle 中的有序提示是否也决定了获取它们的行的顺序?
- swiftui - 在 TextField 更改后 NavigationLink 关闭
- pdf - 使用 Ghostscript 通过 pdfmarks 设置 PDF 自然语言
- django - CKEditor在 Django 中删除