Python 在列表中查找公共字符串并显示它们
我试图创建一个函数compare(lst1,lst2),它比较列表中的每个元素,并返回新列表中的每个公共元素,并显示其公共性的百分比。列表中的所有元素都将是字符串。例如,函数应返回:Python 在列表中查找公共字符串并显示它们,python,python-3.x,list,python-requests,Python,Python 3.x,List,Python Requests,我试图创建一个函数compare(lst1,lst2),它比较列表中的每个元素,并返回新列表中的每个公共元素,并显示其公共性的百分比。列表中的所有元素都将是字符串。例如,函数应返回: lst1 = AAAAABBBBBCCCCCDDDD lst2 = ABCABCABCABCABCABCA common strand = AxxAxxxBxxxCxxCxxxx similarity = 25% 列表中不相似的部分将简单地返回为x。 如果没有pythonset和zip方法,我很难完成此函数。我不
lst1 = AAAAABBBBBCCCCCDDDD
lst2 = ABCABCABCABCABCABCA
common strand = AxxAxxxBxxxCxxCxxxx
similarity = 25%
列表中不相似的部分将简单地返回为x。
如果没有pythonset和zip方法,我很难完成此函数。我不允许在这个任务中使用它们,我必须使用while和for循环来实现这一点。请指导我如何做到这一点
如果没有pythonset和zip方法,我很难完成这个函数。我不允许在这个任务中使用它们,我必须使用while和for循环来实现这一点。请指导我如何做到这一点
您有两个字符串A
和B
。字符串是有序的字符序列
假设A
和B
长度相等(字符数相同)。选择一些位置i
(记住Python序列是0索引的)。您的问题陈述需要:
A
中的字符i
与B
中的字符i
相同,则生成该字符
A
中找到i
th字符。请记住:字符串是字符序列,因此Python字符串还实现了几个
如果len(A)!=len(B)
,如果要将任一字符串中的i
th元素与小于i
的字符串进行比较,则需要决定该怎么做。您可能认为可以将它们表示为(2)中的同一占位符
如果您知道如何迭代zip
的结果,那么您就知道如何对循环使用。您所需要的只是一种迭代索引序列的方法
最后,对于你的相似性度量:如果你比较了n
字符,发现n这就是我得出的结论
lst1 = 'AAAAABBBBBCCCCCDDDD'
lst2 = 'ABCABCABCABCABCABCA'
common_strand = ''
score = 0
for i in range(len(lst1)):
if lst1[i] == lst2[i]:
common_strand = common_strand + str(lst1[i])
score += 1
else:
common_strand = common_strand + 'x'
print('Common Strand: ', common_strand)
print('Similarity Score: ', score/len(lst1))
输出:
Common Strand: AxxAxxxBxxxCxxCxxxx
Similarity Score: 0.2631578947368421
请共享您尝试过的代码。只需使用for循环对字符串进行迭代,并一次比较每个字符串(或列表)中的一个字符,同时计算有多少个字符是相同的,同时构建公共串。